diff --git a/ENSIM/Java/POOtpnote/target/classes/entity/Employe.class b/ENSIM/Java/POOtpnote/target/classes/entity/Employe.class
deleted file mode 100644
index 4a56c75..0000000
Binary files a/ENSIM/Java/POOtpnote/target/classes/entity/Employe.class and /dev/null differ
diff --git a/ENSIM/Java/POOtpnote/target/classes/entity/Empruntable.class b/ENSIM/Java/POOtpnote/target/classes/entity/Empruntable.class
deleted file mode 100644
index 968b5a3..0000000
Binary files a/ENSIM/Java/POOtpnote/target/classes/entity/Empruntable.class and /dev/null differ
diff --git a/ENSIM/Java/POOtpnote/target/classes/material/Imprimante.class b/ENSIM/Java/POOtpnote/target/classes/material/Imprimante.class
deleted file mode 100644
index d0fba9b..0000000
Binary files a/ENSIM/Java/POOtpnote/target/classes/material/Imprimante.class and /dev/null differ
diff --git a/ENSIM/Java/POOtpnote/target/classes/material/PCPortable.class b/ENSIM/Java/POOtpnote/target/classes/material/PCPortable.class
deleted file mode 100644
index c7c239a..0000000
Binary files a/ENSIM/Java/POOtpnote/target/classes/material/PCPortable.class and /dev/null differ
diff --git a/ENSIM/Java/POOtpnote/target/classes/material/Souris.class b/ENSIM/Java/POOtpnote/target/classes/material/Souris.class
deleted file mode 100644
index 2ad754c..0000000
Binary files a/ENSIM/Java/POOtpnote/target/classes/material/Souris.class and /dev/null differ
diff --git a/ENSIM/Java/POOtpnote/target/classes/material/TELPortable.class b/ENSIM/Java/POOtpnote/target/classes/material/TELPortable.class
deleted file mode 100644
index 506177c..0000000
Binary files a/ENSIM/Java/POOtpnote/target/classes/material/TELPortable.class and /dev/null differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/.DS_Store b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/.DS_Store
new file mode 100644
index 0000000..1f08ce5
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/.DS_Store differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/.classpath b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/.classpath
new file mode 100644
index 0000000..e8993df
--- /dev/null
+++ b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/.classpath
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/.idea/encodings.xml b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/.idea/encodings.xml
new file mode 100644
index 0000000..15a15b2
--- /dev/null
+++ b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/.idea/encodings.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/.idea/libraries/lib.xml b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/.idea/libraries/lib.xml
new file mode 100644
index 0000000..c6062c5
--- /dev/null
+++ b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/.idea/libraries/lib.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/.idea/misc.xml b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/.idea/misc.xml
new file mode 100644
index 0000000..18e6fc0
--- /dev/null
+++ b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/.idea/modules.xml b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/.idea/modules.xml
new file mode 100644
index 0000000..1ee6ade
--- /dev/null
+++ b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/.idea/uiDesigner.xml b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/.idea/uiDesigner.xml
new file mode 100644
index 0000000..e96534f
--- /dev/null
+++ b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/.idea/vcs.xml b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/.idea/vcs.xml
new file mode 100644
index 0000000..c2365ab
--- /dev/null
+++ b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/.idea/workspace.xml b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/.idea/workspace.xml
new file mode 100644
index 0000000..52f1a21
--- /dev/null
+++ b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/.idea/workspace.xml
@@ -0,0 +1,949 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1551105289681
+
+
+ 1551105289681
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ No facets are configured
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1.8.0_181
+
+
+
+
+
+
+
+
+
+
+
+ tp1v2-dp-HERBRON_Tanguy
+
+
+
+
+
+
+
+
+
+
+
+
+ 1.8.0_181
+
+
+
+
+
+
+
+
+
+
+
+ lib
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/.project b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/.project
new file mode 100644
index 0000000..f281b50
--- /dev/null
+++ b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/.project
@@ -0,0 +1,17 @@
+
+
+ tp1v2-dp-squelette
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+
+
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/.settings/org.eclipse.core.resources.prefs b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/=UTF-8
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/.settings/org.eclipse.jdt.core.prefs b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..87b7a7a
--- /dev/null
+++ b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,13 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.release=disabled
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/gps/labernerie.gpx b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/gps/labernerie.gpx
new file mode 100644
index 0000000..fdd488b
--- /dev/null
+++ b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/gps/labernerie.gpx
@@ -0,0 +1,733 @@
+
+
+
+labernerie.gpx
+
+
+
+labernerie.gpx
+
+18.402344
+15.518433
+16.479736
+15.518433
+15.03772
+11.673218
+11.192505
+11.673218
+12.153809
+12.153809
+11.673218
+11.673218
+12.634399
+14.557007
+16.479736
+17.921753
+17.441162
+17.441162
+18.402344
+17.921753
+18.402344
+19.36377
+17.441162
+16.479736
+16.479736
+16.96045
+17.921753
+18.402344
+18.402344
+19.84436
+20.324951
+20.805664
+22.728271
+23.689575
+22.247559
+22.728271
+22.247559
+21.766968
+21.286377
+20.324951
+20.324951
+19.36377
+18.883057
+18.883057
+18.402344
+17.921753
+17.921753
+17.921753
+17.921753
+18.402344
+19.36377
+21.766968
+23.208984
+25.612305
+26.573608
+27.534912
+27.534912
+28.496216
+28.976929
+28.015503
+28.976929
+28.015503
+28.015503
+28.015503
+28.496216
+28.976929
+29.45752
+29.93811
+29.93811
+28.496216
+28.496216
+28.976929
+30.418823
+31.380127
+30.899536
+31.860718
+30.899536
+30.418823
+28.976929
+27.054321
+28.976929
+28.976929
+29.93811
+30.899536
+31.380127
+30.418823
+30.418823
+28.976929
+29.45752
+28.496216
+28.496216
+30.418823
+29.45752
+29.45752
+28.976929
+29.45752
+30.418823
+30.899536
+30.418823
+28.976929
+28.015503
+25.131714
+23.208984
+22.728271
+22.728271
+23.208984
+25.131714
+28.976929
+32.341553
+34.26416
+35.706055
+36.66748
+36.66748
+36.186768
+35.706055
+36.186768
+35.706055
+35.706055
+35.225464
+35.706055
+36.186768
+37.14807
+38.109375
+38.590088
+39.07068
+40.032104
+40.512817
+40.512817
+41.474
+40.512817
+40.032104
+41.474
+41.954712
+42.916016
+42.916016
+43.396606
+42.916016
+40.512817
+39.07068
+36.66748
+35.225464
+34.26416
+33.302856
+31.380127
+30.418823
+28.015503
+27.054321
+26.092896
+26.573608
+25.612305
+25.612305
+27.534912
+28.015503
+27.534912
+27.534912
+28.976929
+28.976929
+28.976929
+32.341553
+33.302856
+33.302856
+32.822266
+32.341553
+32.822266
+33.783447
+31.860718
+31.380127
+31.380127
+31.380127
+31.380127
+31.860718
+32.341553
+33.302856
+33.783447
+34.744873
+35.225464
+34.26416
+35.225464
+35.225464
+35.225464
+35.706055
+36.186768
+36.186768
+36.186768
+35.706055
+33.783447
+33.302856
+33.302856
+35.225464
+36.186768
+36.66748
+37.628662
+39.55127
+40.512817
+41.474
+41.954712
+40.99341
+40.032104
+39.07068
+38.590088
+39.55127
+38.590088
+37.628662
+37.628662
+37.628662
+37.628662
+37.14807
+36.66748
+37.14807
+37.628662
+38.109375
+39.07068
+39.55127
+39.55127
+38.590088
+38.109375
+39.07068
+40.032104
+40.512817
+40.512817
+40.512817
+39.07068
+37.628662
+36.66748
+36.186768
+36.66748
+36.66748
+37.14807
+37.14807
+37.628662
+38.590088
+38.590088
+38.590088
+39.07068
+40.032104
+41.474
+42.916016
+42.435425
+42.435425
+42.435425
+41.954712
+41.474
+40.512817
+40.512817
+40.032104
+40.032104
+39.55127
+39.07068
+38.590088
+38.109375
+38.109375
+37.628662
+37.628662
+37.628662
+38.109375
+37.628662
+38.109375
+37.628662
+36.66748
+35.706055
+35.225464
+34.744873
+34.744873
+34.744873
+34.26416
+34.26416
+36.66748
+38.590088
+39.07068
+40.99341
+41.954712
+41.474
+41.474
+40.99341
+42.916016
+42.435425
+41.954712
+42.435425
+42.916016
+41.954712
+41.954712
+40.032104
+38.109375
+36.186768
+35.225464
+35.225464
+34.744873
+34.26416
+34.26416
+34.744873
+34.744873
+33.302856
+33.302856
+33.302856
+32.822266
+33.302856
+33.783447
+33.302856
+32.822266
+32.822266
+32.822266
+32.822266
+32.341553
+32.341553
+32.822266
+33.783447
+34.26416
+35.225464
+36.186768
+38.590088
+39.55127
+40.512817
+41.474
+40.512817
+40.032104
+38.590088
+37.14807
+35.706055
+34.26416
+32.822266
+32.822266
+31.860718
+32.341553
+33.302856
+32.822266
+31.860718
+30.899536
+30.418823
+29.45752
+29.93811
+28.976929
+27.534912
+26.573608
+26.573608
+27.054321
+26.092896
+25.612305
+25.612305
+26.092896
+26.573608
+27.054321
+27.054321
+27.534912
+28.015503
+28.496216
+28.496216
+28.015503
+27.054321
+24.651001
+23.208984
+22.247559
+21.766968
+22.247559
+23.208984
+24.651001
+24.170288
+27.534912
+24.651001
+27.054321
+25.612305
+25.612305
+24.651001
+24.170288
+24.651001
+24.170288
+22.728271
+21.766968
+20.805664
+20.805664
+21.286377
+21.766968
+21.286377
+22.247559
+22.728271
+21.766968
+21.286377
+21.766968
+23.208984
+22.728271
+23.208984
+24.170288
+24.170288
+24.170288
+24.170288
+24.651001
+24.170288
+22.247559
+21.286377
+20.805664
+20.805664
+21.286377
+21.766968
+22.247559
+22.728271
+22.728271
+24.170288
+25.612305
+26.092896
+25.612305
+24.651001
+23.689575
+25.131714
+25.612305
+26.092896
+24.651001
+25.612305
+26.092896
+25.131714
+22.728271
+22.247559
+20.805664
+19.36377
+20.324951
+22.247559
+24.651001
+26.573608
+28.976929
+31.860718
+32.341553
+31.860718
+31.860718
+31.380127
+30.899536
+29.45752
+29.93811
+30.418823
+32.822266
+34.26416
+35.706055
+35.706055
+36.186768
+35.225464
+34.744873
+34.26416
+34.744873
+35.225464
+34.744873
+34.26416
+33.783447
+34.26416
+33.302856
+33.783447
+32.822266
+33.302856
+34.744873
+33.302856
+33.302856
+32.341553
+31.860718
+31.380127
+30.899536
+30.418823
+30.899536
+31.380127
+31.380127
+33.302856
+33.302856
+35.225464
+36.66748
+36.186768
+36.186768
+35.225464
+35.706055
+32.341553
+30.418823
+30.418823
+30.899536
+30.418823
+29.93811
+28.976929
+28.015503
+27.534912
+26.573608
+25.131714
+24.170288
+22.728271
+21.286377
+18.883057
+16.96045
+14.557007
+12.634399
+11.192505
+10.231201
+10.231201
+11.673218
+13.115112
+15.999023
+16.96045
+17.441162
+17.441162
+18.402344
+20.324951
+22.247559
+23.689575
+23.208984
+20.324951
+17.921753
+16.96045
+17.921753
+18.402344
+20.324951
+21.766968
+23.689575
+25.131714
+25.612305
+27.054321
+28.015503
+29.45752
+29.93811
+30.418823
+30.418823
+30.418823
+28.976929
+27.054321
+26.092896
+23.689575
+23.208984
+22.728271
+22.728271
+23.689575
+24.651001
+25.131714
+27.534912
+28.015503
+32.822266
+33.783447
+35.225464
+31.380127
+28.976929
+24.170288
+21.286377
+16.479736
+14.076416
+14.076416
+15.999023
+16.96045
+19.36377
+20.805664
+22.247559
+23.208984
+23.208984
+21.286377
+20.805664
+20.324951
+20.324951
+22.247559
+22.247559
+22.247559
+23.689575
+25.612305
+24.651001
+23.208984
+21.766968
+21.286377
+20.324951
+19.36377
+18.402344
+17.921753
+15.518433
+14.076416
+13.115112
+15.518433
+16.479736
+18.402344
+19.84436
+19.36377
+21.766968
+22.247559
+22.728271
+22.247559
+23.689575
+24.170288
+24.170288
+24.651001
+23.689575
+22.247559
+20.324951
+17.921753
+17.921753
+16.479736
+16.479736
+17.441162
+16.96045
+16.96045
+15.999023
+14.557007
+12.153809
+10.231201
+8.308594
+8.308594
+7.347168
+6.866455
+8.789185
+10.231201
+13.595825
+14.557007
+15.03772
+15.999023
+17.441162
+18.883057
+19.84436
+21.766968
+20.805664
+20.805664
+21.286377
+23.689575
+24.170288
+23.689575
+22.728271
+21.286377
+20.324951
+18.883057
+17.921753
+17.441162
+16.479736
+14.557007
+13.115112
+12.634399
+11.192505
+8.789185
+8.789185
+5.9052734
+3.5019531
+-0.3433838
+-0.3433838
+0.13745117
+0.618042
+2.5406494
+3.982666
+4.463257
+3.982666
+2.5406494
+0.618042
+-0.3433838
+3.0212402
+0.618042
+-1.7852783
+-1.3046875
+0.618042
+0.618042
+1.0986328
+2.0600586
+1.0986328
+1.5793457
+1.5793457
+0.13745117
+-1.7852783
+-1.3046875
+-2.2659912
+-4.1885986
+-6.111206
+-5.630493
+-6.111206
+-6.591919
+-6.591919
+-6.111206
+-5.630493
+-4.6693115
+-2.2659912
+-1.3046875
+1.0986328
+3.982666
+3.982666
+2.5406494
+3.5019531
+3.982666
+3.982666
+4.9438477
+5.4245605
+4.9438477
+5.9052734
+5.9052734
+6.3858643
+4.9438477
+4.9438477
+4.463257
+3.982666
+4.463257
+5.9052734
+4.9438477
+3.982666
+2.5406494
+2.5406494
+1.0986328
+-0.3433838
+-1.3046875
+0.13745117
+-0.3433838
+0.618042
+1.0986328
+2.5406494
+3.982666
+5.4245605
+6.866455
+8.789185
+9.75061
+10.711792
+10.711792
+8.789185
+7.827881
+7.347168
+7.347168
+6.3858643
+6.3858643
+5.4245605
+5.9052734
+5.9052734
+6.3858643
+7.827881
+6.866455
+6.3858643
+6.3858643
+5.4245605
+4.463257
+3.982666
+5.9052734
+6.3858643
+6.866455
+7.347168
+8.308594
+
+
+
+
\ No newline at end of file
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/gps/lasuze.gpx b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/gps/lasuze.gpx
new file mode 100644
index 0000000..90c45a1
--- /dev/null
+++ b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/gps/lasuze.gpx
@@ -0,0 +1,1100 @@
+
+
+
+lasuze.gpx
+
+
+
+lasuze.gpx
+
+40.512817
+38.590088
+36.66748
+36.66748
+37.14807
+37.14807
+37.14807
+37.628662
+39.07068
+38.590088
+39.07068
+40.512817
+40.032104
+39.55127
+39.07068
+37.628662
+37.628662
+38.109375
+38.109375
+37.628662
+41.474
+43.87732
+43.87732
+41.954712
+41.474
+41.474
+41.474
+40.99341
+41.954712
+40.99341
+40.99341
+40.032104
+40.99341
+41.474
+41.474
+40.99341
+40.512817
+39.55127
+38.590088
+38.590088
+37.14807
+37.14807
+37.14807
+37.14807
+38.590088
+39.07068
+39.55127
+40.512817
+40.99341
+41.954712
+44.838623
+47.24182
+50.606567
+50.606567
+47.722534
+45.799927
+43.396606
+40.99341
+39.55127
+43.87732
+44.358032
+45.799927
+48.20337
+49.645264
+52.048584
+54.451782
+56.37451
+53.97119
+53.97119
+52.529175
+50.125977
+49.16455
+48.20337
+47.24182
+48.68396
+49.645264
+51.08716
+50.125977
+49.645264
+50.606567
+50.606567
+50.125977
+51.08716
+53.97119
+55.413086
+57.81653
+57.81653
+53.49048
+52.529175
+50.606567
+55.413086
+55.413086
+57.81653
+59.739136
+61.661743
+63.103638
+64.545654
+66.948975
+68.87158
+69.832886
+69.352295
+69.352295
+68.87158
+67.42969
+67.91028
+68.87158
+69.352295
+69.832886
+70.79419
+70.79419
+72.236206
+73.67822
+73.67822
+74.15881
+74.15881
+75.12024
+74.15881
+73.67822
+73.19763
+71.75549
+72.71692
+72.236206
+72.71692
+74.15881
+74.63953
+75.12024
+76.56213
+77.04285
+77.52344
+78.00403
+78.48474
+78.965454
+78.965454
+78.48474
+78.00403
+78.00403
+78.48474
+78.00403
+78.48474
+79.446045
+79.446045
+79.926636
+81.368774
+80.88818
+80.88818
+79.446045
+77.52344
+76.56213
+75.12024
+73.67822
+73.67822
+73.19763
+73.19763
+73.67822
+73.67822
+74.15881
+74.63953
+75.60083
+75.60083
+74.63953
+74.63953
+73.67822
+73.19763
+72.71692
+72.71692
+72.236206
+73.19763
+72.71692
+73.19763
+72.71692
+70.79419
+69.352295
+69.832886
+69.832886
+69.352295
+68.87158
+67.91028
+67.42969
+65.50708
+63.58435
+63.58435
+63.58435
+64.545654
+65.50708
+65.98767
+66.948975
+82.81079
+72.236206
+82.81079
+78.965454
+76.56213
+72.71692
+68.87158
+65.98767
+64.06506
+63.58435
+66.46826
+69.352295
+71.75549
+71.75549
+71.75549
+71.75549
+70.79419
+69.352295
+66.948975
+65.98767
+64.545654
+63.103638
+63.103638
+63.103638
+62.142334
+61.661743
+60.219727
+58.77771
+56.855103
+57.335815
+57.81653
+57.335815
+56.37451
+54.451782
+53.009766
+57.81653
+59.739136
+60.219727
+60.219727
+60.700317
+61.661743
+62.142334
+62.622925
+63.58435
+64.06506
+63.58435
+63.103638
+63.58435
+63.58435
+63.103638
+64.06506
+64.545654
+64.06506
+63.103638
+62.622925
+63.58435
+64.545654
+64.545654
+65.02637
+64.545654
+64.545654
+64.06506
+63.103638
+62.622925
+61.18103
+61.661743
+63.103638
+66.46826
+70.79419
+75.60083
+78.965454
+81.849365
+80.88818
+78.965454
+77.52344
+75.12024
+72.71692
+70.31348
+68.87158
+66.46826
+66.46826
+65.98767
+65.02637
+64.06506
+65.50708
+65.02637
+65.02637
+64.06506
+65.50708
+65.98767
+66.46826
+68.39087
+69.832886
+70.31348
+69.832886
+68.87158
+66.46826
+64.545654
+64.06506
+63.58435
+63.103638
+63.103638
+62.622925
+61.661743
+61.661743
+60.700317
+59.739136
+58.29712
+55.8938
+54.451782
+52.048584
+51.08716
+50.606567
+53.009766
+53.49048
+53.97119
+53.97119
+53.009766
+52.529175
+49.645264
+48.20337
+46.28064
+44.838623
+43.396606
+44.358032
+48.68396
+48.68396
+50.125977
+50.125977
+51.08716
+52.529175
+53.49048
+53.009766
+51.08716
+49.645264
+48.68396
+51.08716
+50.606567
+50.125977
+51.56787
+54.932373
+54.451782
+54.932373
+55.8938
+56.37451
+57.335815
+56.37451
+53.97119
+53.97119
+53.009766
+53.97119
+54.451782
+56.37451
+54.932373
+53.97119
+51.56787
+49.16455
+46.28064
+46.28064
+46.28064
+47.24182
+52.048584
+53.009766
+52.048584
+53.009766
+55.8938
+53.49048
+51.56787
+45.799927
+45.319214
+43.87732
+44.358032
+44.358032
+46.28064
+47.722534
+47.24182
+46.76123
+48.20337
+47.722534
+48.68396
+48.20337
+47.722534
+46.28064
+45.319214
+43.87732
+43.396606
+41.954712
+39.55127
+37.14807
+36.66748
+35.225464
+37.628662
+40.032104
+42.435425
+43.396606
+42.435425
+41.954712
+42.435425
+43.87732
+44.358032
+45.319214
+44.838623
+44.838623
+43.87732
+41.954712
+41.474
+40.512817
+40.99341
+42.435425
+43.87732
+44.838623
+45.799927
+46.28064
+44.838623
+43.396606
+42.435425
+40.512817
+41.474
+41.474
+41.474
+41.954712
+42.435425
+44.838623
+45.319214
+45.319214
+46.28064
+48.20337
+48.20337
+46.76123
+46.76123
+44.838623
+45.319214
+45.319214
+45.319214
+46.28064
+47.722534
+49.645264
+48.68396
+46.76123
+42.916016
+42.435425
+44.838623
+50.606567
+51.56787
+53.97119
+57.335815
+63.103638
+67.91028
+67.91028
+68.39087
+70.31348
+76.08142
+78.965454
+78.48474
+77.04285
+66.948975
+59.739136
+56.855103
+51.56787
+48.20337
+46.76123
+45.319214
+43.87732
+43.396606
+43.87732
+42.916016
+43.396606
+42.916016
+41.954712
+42.435425
+42.435425
+43.87732
+45.319214
+45.799927
+46.28064
+47.24182
+49.16455
+48.68396
+48.68396
+48.20337
+45.799927
+47.24182
+46.76123
+48.20337
+50.606567
+53.97119
+58.29712
+59.739136
+59.258423
+58.77771
+59.258423
+59.739136
+58.29712
+58.77771
+56.855103
+53.97119
+51.56787
+49.16455
+50.125977
+49.645264
+49.16455
+49.16455
+47.722534
+48.20337
+46.28064
+45.799927
+43.87732
+41.954712
+40.99341
+40.99341
+39.55127
+39.55127
+40.032104
+39.55127
+39.07068
+39.55127
+40.032104
+39.55127
+39.55127
+41.954712
+43.396606
+45.319214
+45.799927
+44.838623
+42.916016
+41.954712
+41.954712
+41.474
+41.954712
+41.474
+40.032104
+39.07068
+37.628662
+39.07068
+39.07068
+38.590088
+39.07068
+39.55127
+40.032104
+40.512817
+40.99341
+41.474
+42.435425
+42.916016
+43.87732
+44.358032
+46.28064
+48.20337
+49.16455
+51.56787
+53.009766
+52.529175
+52.529175
+49.645264
+46.76123
+46.28064
+48.20337
+46.76123
+47.722534
+48.20337
+48.68396
+46.76123
+48.20337
+48.68396
+49.16455
+48.68396
+49.645264
+51.56787
+52.529175
+52.048584
+50.606567
+48.68396
+45.799927
+42.916016
+42.435425
+43.396606
+45.319214
+46.76123
+47.24182
+47.722534
+45.799927
+46.28064
+45.799927
+43.87732
+42.916016
+42.435425
+41.954712
+42.916016
+43.396606
+43.87732
+44.358032
+45.319214
+46.28064
+46.28064
+45.319214
+44.838623
+44.838623
+46.28064
+48.20337
+48.68396
+48.20337
+48.20337
+48.20337
+48.20337
+47.722534
+47.722534
+48.68396
+48.20337
+47.24182
+46.76123
+46.28064
+45.319214
+44.838623
+45.319214
+46.28064
+46.76123
+47.24182
+47.722534
+48.20337
+48.20337
+47.24182
+47.722534
+49.16455
+49.16455
+51.08716
+53.009766
+55.8938
+56.855103
+60.219727
+62.622925
+63.58435
+61.661743
+62.142334
+63.58435
+62.142334
+62.142334
+64.06506
+66.948975
+66.948975
+68.39087
+60.700317
+57.81653
+52.529175
+49.16455
+48.20337
+48.20337
+49.645264
+50.606567
+53.009766
+54.932373
+56.855103
+58.77771
+59.258423
+60.700317
+64.06506
+66.948975
+67.91028
+69.832886
+71.2749
+73.67822
+71.2749
+64.545654
+61.18103
+60.700317
+58.29712
+57.335815
+54.932373
+52.529175
+50.606567
+49.645264
+50.606567
+48.68396
+49.16455
+49.16455
+48.68396
+48.20337
+49.645264
+50.125977
+51.56787
+52.048584
+52.048584
+52.048584
+53.009766
+55.8938
+57.335815
+58.29712
+56.855103
+50.125977
+47.24182
+46.28064
+43.396606
+43.87732
+43.396606
+42.435425
+41.474
+39.55127
+38.109375
+38.109375
+37.628662
+37.14807
+36.66748
+38.109375
+38.109375
+39.55127
+39.55127
+39.55127
+40.99341
+42.916016
+41.954712
+42.435425
+41.954712
+40.99341
+40.99341
+41.474
+43.396606
+45.799927
+47.722534
+51.08716
+51.56787
+51.08716
+49.16455
+49.16455
+48.68396
+48.68396
+49.16455
+47.24182
+50.125977
+52.048584
+53.97119
+55.8938
+56.37451
+55.413086
+53.97119
+50.606567
+48.68396
+48.20337
+44.358032
+45.799927
+45.799927
+45.319214
+43.396606
+42.916016
+42.435425
+43.396606
+43.87732
+44.358032
+44.838623
+44.358032
+44.358032
+45.319214
+46.76123
+48.20337
+49.16455
+51.08716
+51.56787
+50.606567
+50.125977
+50.125977
+50.125977
+51.56787
+53.49048
+54.451782
+56.855103
+61.18103
+63.103638
+60.700317
+59.739136
+58.29712
+57.335815
+57.335815
+57.81653
+56.37451
+55.413086
+54.932373
+54.451782
+49.645264
+47.24182
+43.87732
+43.396606
+43.396606
+43.396606
+42.916016
+42.435425
+41.474
+40.99341
+40.99341
+41.474
+40.99341
+39.55127
+39.55127
+40.032104
+39.07068
+38.109375
+39.55127
+40.99341
+40.512817
+42.435425
+43.87732
+45.319214
+45.319214
+46.28064
+47.722534
+49.645264
+52.048584
+53.97119
+54.932373
+57.81653
+60.219727
+61.661743
+62.142334
+64.545654
+65.50708
+63.58435
+64.06506
+64.06506
+56.855103
+53.97119
+52.529175
+53.009766
+54.451782
+57.335815
+57.335815
+59.258423
+61.661743
+62.622925
+64.06506
+64.545654
+64.545654
+65.50708
+65.02637
+63.103638
+59.739136
+59.258423
+58.29712
+57.335815
+57.81653
+56.855103
+53.97119
+50.125977
+51.08716
+50.606567
+51.08716
+50.606567
+49.16455
+48.68396
+47.722534
+48.20337
+49.645264
+49.16455
+49.16455
+49.645264
+51.08716
+51.08716
+53.49048
+54.932373
+56.855103
+57.335815
+57.81653
+58.29712
+59.739136
+59.258423
+60.219727
+61.18103
+61.661743
+58.77771
+58.77771
+59.739136
+59.258423
+60.700317
+61.661743
+63.103638
+63.58435
+65.50708
+67.42969
+66.948975
+66.46826
+66.46826
+66.948975
+68.39087
+69.352295
+68.87158
+68.39087
+68.87158
+68.39087
+68.39087
+68.39087
+67.42969
+66.948975
+66.948975
+63.58435
+61.661743
+61.661743
+61.661743
+64.06506
+65.50708
+69.352295
+73.19763
+74.63953
+76.08142
+77.04285
+75.12024
+74.15881
+72.71692
+73.67822
+71.75549
+66.948975
+64.06506
+64.545654
+63.103638
+62.622925
+63.103638
+62.142334
+62.142334
+62.622925
+62.622925
+61.661743
+61.661743
+61.661743
+61.661743
+61.661743
+60.700317
+59.739136
+59.258423
+58.77771
+56.37451
+53.97119
+53.97119
+55.8938
+56.855103
+59.258423
+60.219727
+61.18103
+61.661743
+62.142334
+62.622925
+62.622925
+62.622925
+63.103638
+63.103638
+63.58435
+63.58435
+65.02637
+66.948975
+69.352295
+72.71692
+73.67822
+74.63953
+72.71692
+70.31348
+69.352295
+68.87158
+68.39087
+68.87158
+68.87158
+69.832886
+69.832886
+68.87158
+68.87158
+67.91028
+67.91028
+67.42969
+67.91028
+66.948975
+66.948975
+67.91028
+67.91028
+67.91028
+67.42969
+67.91028
+67.91028
+69.352295
+70.79419
+71.75549
+72.236206
+74.63953
+77.04285
+78.48474
+78.965454
+78.00403
+78.48474
+78.00403
+78.00403
+78.00403
+77.52344
+77.52344
+78.00403
+77.04285
+75.12024
+74.63953
+73.67822
+72.236206
+71.2749
+71.75549
+71.2749
+70.79419
+70.31348
+70.31348
+71.75549
+72.236206
+72.236206
+71.2749
+70.79419
+69.832886
+70.79419
+72.236206
+73.19763
+73.19763
+73.19763
+72.71692
+71.2749
+70.79419
+69.352295
+68.39087
+66.948975
+65.50708
+64.545654
+62.622925
+61.18103
+60.700317
+60.219727
+60.219727
+59.258423
+56.37451
+53.97119
+53.009766
+52.529175
+52.529175
+52.529175
+51.56787
+50.125977
+50.606567
+50.606567
+51.08716
+48.68396
+47.722534
+45.319214
+43.87732
+43.396606
+41.474
+40.512817
+39.55127
+39.55127
+40.512817
+43.396606
+46.28064
+47.722534
+48.20337
+49.16455
+48.68396
+49.16455
+48.68396
+47.24182
+45.319214
+45.319214
+44.358032
+46.28064
+44.358032
+43.396606
+38.590088
+40.512817
+41.474
+42.435425
+47.722534
+49.645264
+49.16455
+50.125977
+51.56787
+51.08716
+51.56787
+50.125977
+47.24182
+45.319214
+48.20337
+49.16455
+45.799927
+42.435425
+39.07068
+39.55127
+37.628662
+35.706055
+34.744873
+36.66748
+39.07068
+39.55127
+40.99341
+40.032104
+39.07068
+36.66748
+36.66748
+36.66748
+36.186768
+34.744873
+34.26416
+32.341553
+30.899536
+30.418823
+34.26416
+35.225464
+36.66748
+37.14807
+36.66748
+
+
+
+
\ No newline at end of file
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/gps/lemans.gpx b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/gps/lemans.gpx
new file mode 100644
index 0000000..1235d85
--- /dev/null
+++ b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/gps/lemans.gpx
@@ -0,0 +1,968 @@
+
+
+
+lemans.gpx
+
+
+
+lemans.gpx
+
+51.08716
+50.125977
+49.645264
+48.68396
+48.68396
+48.68396
+48.68396
+48.68396
+48.68396
+53.009766
+53.49048
+53.49048
+52.048584
+51.56787
+50.125977
+48.20337
+49.16455
+52.048584
+52.529175
+53.49048
+53.97119
+55.8938
+55.8938
+57.81653
+56.37451
+52.529175
+50.606567
+48.20337
+49.16455
+48.20337
+48.20337
+47.722534
+46.28064
+45.799927
+45.319214
+44.838623
+45.799927
+47.722534
+47.722534
+49.16455
+49.16455
+50.125977
+50.606567
+51.08716
+50.125977
+50.125977
+49.645264
+50.125977
+50.125977
+49.645264
+50.125977
+51.08716
+51.56787
+53.009766
+52.529175
+52.529175
+50.606567
+50.606567
+49.645264
+49.645264
+49.16455
+51.08716
+51.08716
+52.048584
+52.048584
+53.009766
+53.97119
+55.413086
+54.932373
+53.49048
+54.451782
+59.258423
+63.58435
+63.103638
+59.739136
+55.413086
+53.49048
+51.08716
+50.125977
+48.68396
+48.20337
+47.722534
+50.606567
+51.08716
+52.048584
+52.529175
+52.529175
+51.08716
+50.125977
+49.645264
+51.08716
+51.56787
+50.606567
+50.125977
+51.08716
+49.645264
+48.20337
+47.24182
+46.76123
+48.68396
+48.20337
+49.16455
+49.16455
+50.606567
+51.08716
+51.56787
+52.048584
+53.009766
+56.37451
+56.37451
+55.413086
+55.8938
+55.8938
+58.77771
+57.81653
+56.855103
+54.932373
+54.451782
+53.49048
+54.451782
+54.932373
+53.49048
+53.97119
+54.932373
+55.413086
+54.932373
+55.8938
+54.932373
+55.413086
+56.855103
+55.413086
+53.97119
+53.49048
+53.97119
+53.97119
+54.932373
+55.413086
+54.932373
+55.413086
+55.8938
+55.413086
+54.932373
+54.932373
+53.97119
+54.932373
+56.37451
+55.8938
+56.37451
+57.335815
+56.855103
+56.855103
+55.8938
+55.8938
+56.855103
+57.81653
+57.335815
+57.335815
+58.29712
+57.335815
+57.335815
+57.81653
+58.29712
+58.29712
+57.81653
+62.142334
+55.413086
+61.661743
+62.622925
+55.413086
+55.413086
+55.8938
+54.451782
+53.97119
+53.49048
+55.413086
+57.335815
+58.29712
+59.258423
+60.219727
+61.661743
+61.18103
+60.219727
+59.739136
+58.77771
+58.77771
+58.77771
+59.258423
+59.258423
+59.739136
+59.739136
+58.77771
+58.77771
+57.335815
+56.855103
+56.855103
+57.335815
+58.29712
+58.29712
+59.258423
+59.258423
+59.258423
+60.219727
+59.258423
+58.77771
+56.37451
+52.529175
+51.08716
+51.56787
+53.49048
+54.451782
+55.413086
+55.413086
+55.413086
+55.413086
+54.451782
+53.49048
+53.49048
+53.009766
+53.97119
+54.451782
+55.413086
+55.413086
+55.413086
+55.413086
+57.335815
+58.77771
+58.29712
+57.81653
+57.81653
+58.29712
+58.77771
+58.77771
+58.29712
+58.29712
+59.258423
+59.258423
+59.258423
+58.77771
+55.8938
+57.335815
+
+
+55.413086
+55.8938
+56.37451
+57.81653
+58.29712
+58.29712
+58.77771
+59.739136
+61.661743
+62.622925
+63.58435
+66.948975
+69.352295
+71.2749
+72.236206
+72.236206
+72.71692
+73.67822
+74.15881
+73.67822
+73.19763
+74.15881
+74.63953
+73.19763
+73.19763
+73.19763
+72.71692
+73.67822
+75.12024
+75.60083
+74.63953
+74.15881
+75.60083
+75.60083
+75.60083
+76.56213
+
+
+75.60083
+76.08142
+76.08142
+77.04285
+78.00403
+77.04285
+76.08142
+75.60083
+73.67822
+72.236206
+72.236206
+71.75549
+71.75549
+72.71692
+73.67822
+75.12024
+75.12024
+73.67822
+71.75549
+70.31348
+68.87158
+68.87158
+68.39087
+68.39087
+66.948975
+65.50708
+65.50708
+64.06506
+65.02637
+64.545654
+65.02637
+65.02637
+65.02637
+64.545654
+64.545654
+64.545654
+63.58435
+61.661743
+60.219727
+60.219727
+62.142334
+63.103638
+63.58435
+62.622925
+58.29712
+58.77771
+56.37451
+58.29712
+59.258423
+59.739136
+56.855103
+
+
+56.855103
+56.855103
+55.413086
+55.413086
+55.8938
+58.77771
+58.77771
+60.700317
+62.142334
+63.103638
+65.98767
+67.42969
+70.31348
+70.79419
+71.75549
+71.2749
+74.63953
+75.12024
+74.63953
+75.60083
+77.52344
+77.52344
+78.00403
+79.446045
+81.368774
+80.88818
+79.446045
+77.04285
+76.56213
+75.12024
+74.15881
+74.15881
+74.15881
+74.63953
+
+
+78.48474
+77.52344
+76.08142
+74.15881
+72.236206
+71.2749
+69.352295
+68.87158
+68.87158
+68.87158
+69.352295
+69.832886
+70.31348
+71.2749
+73.19763
+74.15881
+74.63953
+74.15881
+75.12024
+75.60083
+74.63953
+73.67822
+72.71692
+70.31348
+69.832886
+68.39087
+65.02637
+63.103638
+61.661743
+60.219727
+58.29712
+57.81653
+57.335815
+56.855103
+56.855103
+57.335815
+57.335815
+57.81653
+57.81653
+55.413086
+
+
+55.413086
+56.855103
+56.37451
+57.81653
+60.219727
+61.18103
+62.622925
+65.50708
+66.46826
+66.46826
+67.42969
+68.87158
+70.31348
+72.71692
+73.67822
+75.12024
+75.60083
+76.08142
+76.56213
+77.04285
+77.04285
+77.52344
+78.965454
+79.926636
+78.00403
+76.56213
+75.12024
+76.08142
+76.08142
+77.04285
+77.04285
+77.52344
+
+
+76.08142
+76.56213
+71.75549
+69.832886
+69.832886
+69.832886
+69.832886
+71.75549
+72.236206
+72.71692
+73.67822
+76.08142
+78.48474
+77.52344
+77.04285
+75.12024
+74.15881
+73.67822
+73.67822
+74.15881
+74.63953
+72.71692
+68.39087
+67.42969
+66.46826
+65.50708
+65.02637
+65.02637
+65.02637
+65.02637
+64.06506
+63.58435
+63.103638
+61.18103
+60.219727
+58.77771
+58.77771
+
+
+58.29712
+59.739136
+62.142334
+63.103638
+63.58435
+63.58435
+63.103638
+62.622925
+63.58435
+65.50708
+66.948975
+67.91028
+67.91028
+68.87158
+69.832886
+73.19763
+75.60083
+76.56213
+78.48474
+78.965454
+78.965454
+78.48474
+76.56213
+76.56213
+76.08142
+73.67822
+72.71692
+71.75549
+70.79419
+71.2749
+71.75549
+72.236206
+73.19763
+74.15881
+75.12024
+
+
+75.12024
+75.60083
+75.60083
+74.15881
+72.71692
+71.2749
+71.2749
+70.79419
+70.31348
+68.87158
+67.42969
+67.42969
+68.39087
+69.832886
+68.87158
+67.91028
+69.832886
+71.75549
+70.31348
+71.75549
+73.67822
+72.71692
+72.236206
+71.2749
+71.2749
+67.42969
+63.58435
+62.622925
+64.06506
+64.545654
+64.06506
+63.103638
+62.622925
+62.142334
+60.700317
+58.77771
+57.81653
+57.335815
+57.335815
+56.855103
+56.855103
+56.855103
+
+
+56.37451
+57.81653
+58.77771
+59.258423
+59.739136
+60.700317
+61.661743
+61.18103
+61.18103
+61.661743
+63.103638
+65.98767
+67.42969
+68.87158
+69.832886
+71.2749
+73.67822
+73.19763
+73.67822
+73.67822
+75.12024
+76.08142
+76.56213
+78.48474
+80.40747
+78.00403
+77.04285
+76.08142
+74.15881
+72.71692
+72.71692
+72.71692
+72.71692
+73.19763
+
+
+73.19763
+73.19763
+74.15881
+72.71692
+72.236206
+70.31348
+69.832886
+70.79419
+70.31348
+69.832886
+68.87158
+69.352295
+70.31348
+70.79419
+67.91028
+66.948975
+68.87158
+69.352295
+70.79419
+69.832886
+69.832886
+69.352295
+69.832886
+70.79419
+71.2749
+70.79419
+70.79419
+69.352295
+67.91028
+65.98767
+65.98767
+64.545654
+62.622925
+60.700317
+59.739136
+58.77771
+58.29712
+56.855103
+55.413086
+55.413086
+
+
+55.413086
+55.413086
+54.932373
+54.451782
+55.8938
+56.855103
+57.81653
+57.81653
+57.81653
+58.77771
+62.142334
+64.545654
+67.42969
+69.832886
+71.75549
+73.19763
+73.19763
+73.67822
+75.12024
+75.12024
+74.15881
+73.67822
+75.12024
+76.08142
+76.08142
+75.12024
+74.15881
+73.67822
+72.236206
+72.236206
+71.75549
+71.2749
+71.75549
+73.67822
+
+
+74.15881
+73.19763
+70.31348
+70.31348
+68.87158
+66.46826
+67.42969
+67.42969
+68.39087
+69.832886
+70.31348
+71.2749
+72.71692
+73.19763
+73.19763
+74.63953
+71.75549
+71.75549
+71.75549
+70.79419
+69.352295
+68.39087
+67.91028
+67.42969
+66.948975
+65.02637
+64.545654
+64.545654
+64.545654
+64.545654
+64.06506
+63.58435
+64.545654
+63.58435
+61.661743
+61.18103
+59.739136
+59.258423
+57.335815
+56.37451
+55.413086
+
+
+55.413086
+54.451782
+53.97119
+55.8938
+56.37451
+57.335815
+58.77771
+60.219727
+62.142334
+64.545654
+66.46826
+68.87158
+70.79419
+73.19763
+73.19763
+73.67822
+72.71692
+72.71692
+71.2749
+72.236206
+73.67822
+74.63953
+73.19763
+72.71692
+72.71692
+72.71692
+72.71692
+72.236206
+72.71692
+77.04285
+
+
+77.04285
+77.04285
+77.04285
+71.2749
+70.79419
+71.75549
+71.75549
+71.2749
+71.75549
+71.75549
+72.236206
+72.236206
+72.71692
+71.75549
+70.79419
+71.2749
+72.71692
+73.67822
+74.15881
+73.67822
+73.67822
+74.15881
+73.67822
+73.67822
+73.67822
+73.19763
+74.15881
+75.12024
+75.12024
+74.15881
+73.67822
+73.19763
+72.236206
+71.75549
+72.71692
+71.75549
+72.236206
+71.75549
+72.236206
+72.236206
+71.75549
+71.75549
+71.75549
+69.352295
+68.87158
+67.42969
+66.948975
+65.98767
+65.50708
+64.06506
+63.103638
+63.103638
+62.622925
+61.18103
+60.219727
+58.77771
+56.855103
+53.49048
+52.048584
+52.048584
+53.009766
+53.49048
+53.009766
+53.49048
+53.009766
+53.49048
+53.97119
+55.413086
+55.8938
+55.8938
+55.413086
+55.8938
+55.8938
+56.855103
+55.8938
+56.37451
+56.37451
+56.855103
+57.81653
+58.29712
+56.37451
+57.335815
+57.335815
+56.855103
+56.855103
+55.8938
+54.932373
+54.451782
+53.49048
+53.49048
+52.529175
+51.56787
+51.08716
+50.606567
+49.16455
+49.645264
+48.68396
+47.722534
+47.722534
+48.20337
+46.76123
+47.24182
+47.722534
+46.76123
+48.68396
+53.009766
+53.49048
+52.048584
+50.125977
+49.16455
+48.68396
+47.722534
+45.319214
+44.838623
+44.358032
+43.87732
+41.954712
+46.28064
+47.24182
+48.20337
+47.722534
+46.76123
+46.76123
+45.319214
+44.358032
+42.916016
+42.916016
+42.916016
+43.396606
+43.87732
+44.838623
+46.76123
+46.28064
+43.87732
+43.396606
+42.916016
+42.435425
+42.916016
+43.396606
+44.358032
+45.319214
+46.28064
+46.28064
+45.319214
+44.358032
+43.87732
+41.954712
+40.032104
+39.55127
+38.109375
+39.07068
+40.99341
+43.87732
+45.799927
+47.24182
+48.68396
+49.16455
+49.645264
+49.16455
+48.20337
+48.68396
+49.16455
+53.009766
+53.009766
+53.009766
+53.49048
+52.529175
+51.08716
+50.125977
+49.16455
+48.68396
+48.68396
+46.28064
+44.838623
+44.838623
+44.838623
+45.319214
+47.24182
+47.24182
+47.24182
+48.20337
+46.28064
+44.358032
+48.20337
+48.68396
+48.68396
+47.722534
+47.24182
+46.28064
+45.799927
+46.76123
+48.20337
+47.722534
+45.799927
+45.799927
+46.28064
+45.799927
+46.76123
+48.20337
+49.16455
+49.16455
+
+
+
+
\ No newline at end of file
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/gps/montreal.gpx b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/gps/montreal.gpx
new file mode 100644
index 0000000..78e729e
--- /dev/null
+++ b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/gps/montreal.gpx
@@ -0,0 +1,2770 @@
+
+
+
+montreal.gpx
+
+
+
+montreal.gpx
+
+44.838623
+46.28064
+45.799927
+46.76123
+46.76123
+46.76123
+46.76123
+44.838623
+42.916016
+43.87732
+43.87732
+45.319214
+44.838623
+45.319214
+45.319214
+45.319214
+45.319214
+41.474
+41.474
+42.916016
+43.396606
+45.319214
+44.358032
+41.954712
+40.032104
+38.109375
+37.628662
+38.590088
+38.590088
+39.55127
+39.07068
+39.07068
+38.109375
+35.225464
+32.822266
+29.93811
+27.054321
+26.092896
+24.170288
+22.728271
+20.324951
+19.84436
+20.805664
+19.36377
+16.96045
+17.441162
+17.441162
+17.441162
+14.557007
+12.634399
+11.192505
+11.673218
+12.153809
+13.595825
+15.518433
+16.96045
+18.883057
+20.324951
+21.286377
+23.208984
+22.728271
+24.651001
+22.728271
+21.286377
+19.36377
+18.402344
+17.921753
+17.441162
+16.479736
+14.557007
+12.634399
+10.711792
+9.75061
+9.269897
+9.269897
+12.153809
+14.557007
+17.441162
+19.36377
+19.84436
+20.805664
+21.286377
+21.766968
+23.208984
+22.728271
+21.286377
+20.805664
+19.84436
+19.36377
+18.883057
+18.402344
+17.441162
+16.479736
+15.518433
+15.03772
+14.557007
+14.557007
+14.557007
+13.595825
+13.595825
+14.076416
+13.595825
+13.595825
+14.076416
+14.557007
+15.03772
+15.518433
+16.96045
+16.96045
+17.441162
+17.921753
+18.402344
+21.286377
+21.286377
+21.766968
+23.208984
+23.689575
+23.689575
+24.170288
+25.131714
+25.131714
+25.612305
+25.612305
+26.573608
+27.054321
+27.054321
+24.651001
+24.170288
+28.015503
+28.015503
+28.015503
+27.054321
+26.092896
+26.092896
+26.092896
+25.131714
+23.208984
+22.728271
+21.286377
+20.805664
+20.805664
+19.84436
+10.711792
+15.03772
+18.402344
+19.36377
+18.883057
+19.84436
+19.36377
+19.36377
+19.84436
+21.286377
+22.728271
+24.170288
+25.612305
+26.092896
+27.054321
+28.015503
+28.496216
+27.534912
+25.131714
+24.651001
+25.612305
+24.170288
+23.689575
+22.728271
+24.170288
+23.689575
+24.170288
+23.208984
+22.247559
+21.286377
+20.324951
+20.324951
+20.805664
+20.805664
+20.324951
+21.286377
+21.766968
+22.247559
+22.247559
+22.247559
+22.728271
+23.208984
+23.208984
+23.208984
+22.247559
+22.247559
+22.728271
+22.247559
+21.766968
+21.766968
+21.286377
+20.805664
+21.766968
+23.689575
+24.651001
+26.092896
+26.092896
+24.170288
+25.131714
+26.092896
+26.573608
+26.573608
+22.247559
+21.766968
+18.883057
+15.999023
+15.518433
+15.518433
+16.479736
+18.402344
+19.84436
+21.286377
+21.286377
+20.805664
+19.84436
+19.84436
+18.402344
+18.402344
+17.921753
+17.441162
+16.96045
+15.518433
+15.03772
+15.03772
+15.518433
+15.03772
+15.518433
+16.96045
+17.921753
+18.402344
+19.36377
+19.84436
+18.883057
+17.921753
+18.402344
+18.402344
+18.402344
+18.402344
+17.921753
+18.883057
+19.36377
+19.36377
+19.36377
+19.84436
+18.402344
+17.921753
+16.96045
+16.96045
+16.96045
+16.96045
+16.479736
+16.96045
+16.96045
+15.999023
+15.518433
+15.999023
+16.96045
+18.402344
+19.84436
+19.84436
+19.84436
+19.84436
+19.84436
+19.36377
+18.402344
+19.84436
+19.84436
+18.883057
+19.84436
+17.921753
+18.883057
+20.324951
+21.766968
+21.766968
+20.324951
+19.36377
+19.84436
+19.84436
+19.36377
+19.84436
+20.324951
+21.286377
+20.805664
+21.286377
+20.324951
+19.36377
+18.402344
+17.921753
+17.921753
+16.96045
+16.96045
+17.441162
+17.921753
+19.36377
+19.84436
+20.324951
+19.84436
+17.921753
+16.96045
+16.96045
+16.479736
+15.999023
+16.96045
+17.921753
+18.402344
+18.402344
+19.36377
+17.921753
+18.402344
+16.96045
+15.518433
+14.076416
+13.115112
+13.595825
+15.03772
+14.557007
+14.557007
+15.03772
+15.999023
+16.479736
+17.921753
+17.441162
+16.96045
+17.441162
+18.883057
+20.324951
+20.805664
+20.324951
+20.324951
+20.805664
+22.247559
+24.170288
+25.612305
+27.534912
+28.496216
+28.496216
+28.015503
+27.534912
+26.092896
+26.573608
+25.131714
+24.170288
+24.651001
+24.651001
+25.131714
+24.651001
+26.573608
+26.092896
+25.612305
+25.131714
+24.170288
+23.208984
+21.766968
+19.84436
+18.402344
+19.36377
+19.84436
+21.286377
+22.247559
+23.208984
+23.689575
+23.208984
+23.689575
+23.689575
+22.728271
+22.728271
+22.728271
+21.286377
+20.324951
+19.36377
+18.883057
+19.84436
+20.324951
+18.402344
+16.96045
+16.96045
+18.402344
+19.84436
+22.247559
+22.247559
+23.208984
+23.689575
+23.689575
+24.170288
+23.689575
+23.208984
+22.728271
+23.689575
+24.170288
+24.170288
+25.131714
+23.208984
+21.286377
+20.324951
+21.766968
+25.612305
+25.131714
+26.092896
+25.612305
+27.534912
+28.015503
+25.612305
+24.651001
+23.689575
+22.728271
+22.728271
+23.689575
+24.170288
+23.689575
+21.766968
+21.286377
+19.84436
+18.402344
+16.96045
+16.96045
+17.921753
+17.921753
+18.402344
+18.402344
+18.402344
+18.402344
+18.883057
+17.921753
+16.479736
+15.518433
+14.557007
+14.557007
+14.076416
+14.557007
+14.557007
+13.595825
+14.076416
+15.999023
+16.479736
+16.96045
+16.96045
+16.479736
+14.557007
+12.634399
+11.192505
+10.711792
+11.192505
+11.192505
+11.673218
+11.673218
+12.153809
+12.634399
+12.153809
+13.595825
+11.192505
+12.634399
+13.115112
+11.673218
+11.192505
+12.153809
+13.115112
+14.557007
+14.076416
+12.634399
+11.192505
+9.75061
+9.75061
+10.231201
+12.634399
+13.115112
+13.595825
+13.595825
+14.076416
+14.076416
+12.634399
+11.673218
+11.673218
+14.076416
+14.557007
+14.557007
+15.03772
+15.999023
+17.921753
+19.36377
+20.805664
+19.36377
+18.883057
+17.921753
+17.921753
+17.441162
+17.441162
+17.921753
+18.402344
+17.921753
+17.921753
+17.921753
+17.921753
+18.402344
+16.96045
+17.441162
+18.402344
+18.883057
+19.84436
+21.766968
+21.286377
+20.805664
+17.441162
+16.479736
+15.518433
+14.557007
+14.557007
+14.557007
+15.03772
+15.999023
+16.96045
+17.441162
+17.441162
+20.324951
+22.247559
+21.766968
+21.286377
+19.84436
+18.883057
+18.883057
+19.36377
+19.84436
+19.84436
+20.324951
+20.324951
+20.805664
+21.286377
+22.247559
+22.728271
+22.728271
+22.247559
+21.286377
+20.324951
+19.84436
+18.402344
+17.441162
+16.479736
+14.076416
+12.153809
+12.153809
+11.192505
+11.673218
+12.153809
+11.673218
+11.192505
+8.789185
+8.789185
+8.789185
+9.269897
+8.789185
+10.231201
+9.75061
+10.711792
+13.115112
+14.557007
+14.557007
+14.557007
+15.518433
+15.999023
+15.999023
+16.479736
+17.921753
+14.557007
+13.115112
+11.673218
+11.192505
+8.308594
+6.3858643
+5.4245605
+4.9438477
+5.4245605
+9.269897
+11.673218
+13.595825
+14.557007
+16.479736
+17.921753
+18.883057
+19.84436
+21.766968
+22.247559
+22.728271
+22.728271
+21.286377
+18.883057
+17.441162
+15.999023
+15.03772
+14.076416
+12.634399
+11.673218
+11.673218
+11.673218
+9.75061
+9.269897
+9.269897
+10.231201
+10.231201
+9.269897
+7.827881
+6.866455
+5.9052734
+5.4245605
+7.827881
+11.192505
+14.557007
+17.441162
+17.441162
+16.479736
+17.441162
+17.441162
+16.96045
+18.402344
+19.36377
+19.84436
+19.84436
+20.324951
+21.766968
+22.728271
+23.689575
+23.689575
+23.208984
+24.170288
+24.651001
+24.651001
+25.131714
+26.092896
+27.534912
+27.054321
+27.054321
+27.054321
+26.573608
+27.534912
+28.015503
+28.976929
+29.93811
+29.93811
+28.976929
+28.015503
+28.015503
+28.015503
+28.496216
+29.45752
+29.93811
+30.418823
+29.93811
+29.45752
+29.45752
+29.93811
+30.418823
+31.380127
+30.899536
+30.418823
+30.899536
+31.860718
+31.380127
+31.860718
+31.860718
+31.860718
+32.822266
+33.302856
+34.744873
+34.26416
+33.302856
+33.302856
+32.341553
+32.341553
+32.341553
+32.341553
+32.341553
+31.860718
+31.860718
+31.380127
+31.860718
+31.380127
+31.860718
+32.341553
+32.822266
+32.822266
+33.302856
+32.341553
+30.418823
+28.976929
+27.534912
+25.612305
+25.131714
+25.612305
+27.054321
+28.015503
+28.496216
+28.496216
+28.015503
+28.015503
+28.976929
+29.45752
+28.015503
+26.573608
+25.131714
+24.170288
+24.170288
+24.170288
+23.208984
+24.651001
+25.131714
+24.651001
+24.170288
+25.131714
+24.651001
+24.170288
+23.689575
+24.170288
+23.208984
+22.247559
+20.805664
+19.84436
+19.84436
+19.84436
+20.324951
+21.286377
+22.247559
+22.728271
+23.208984
+22.728271
+22.247559
+20.805664
+21.766968
+21.766968
+20.805664
+20.805664
+20.805664
+19.84436
+20.324951
+20.805664
+21.286377
+22.247559
+23.208984
+24.170288
+24.651001
+24.651001
+23.689575
+22.728271
+23.208984
+23.208984
+23.208984
+22.728271
+23.208984
+25.131714
+25.612305
+26.573608
+25.612305
+25.131714
+25.131714
+24.170288
+23.208984
+22.247559
+22.247559
+21.766968
+21.766968
+20.805664
+20.805664
+21.766968
+21.286377
+19.84436
+20.324951
+22.247559
+23.208984
+24.651001
+25.612305
+25.131714
+25.131714
+27.534912
+28.496216
+28.976929
+29.45752
+32.341553
+32.822266
+30.899536
+29.45752
+26.573608
+25.131714
+23.689575
+23.689575
+22.728271
+22.247559
+22.728271
+22.728271
+22.728271
+23.208984
+21.766968
+21.766968
+22.247559
+21.766968
+21.766968
+21.766968
+22.247559
+21.286377
+20.805664
+20.805664
+20.805664
+20.805664
+20.324951
+20.805664
+21.766968
+18.883057
+16.479736
+12.634399
+14.557007
+15.518433
+19.84436
+7.347168
+1.5793457
+3.0212402
+10.711792
+15.518433
+15.999023
+17.921753
+20.324951
+21.766968
+20.324951
+18.883057
+18.402344
+16.96045
+16.96045
+19.84436
+20.805664
+19.36377
+17.921753
+15.999023
+16.96045
+18.402344
+20.324951
+24.651001
+26.573608
+28.015503
+28.015503
+29.45752
+31.380127
+33.783447
+34.744873
+34.26416
+32.822266
+33.302856
+34.744873
+32.822266
+32.341553
+32.341553
+31.380127
+28.496216
+27.054321
+24.170288
+22.728271
+22.247559
+20.805664
+19.84436
+19.84436
+19.84436
+20.324951
+20.324951
+19.84436
+19.36377
+17.921753
+16.479736
+15.999023
+16.479736
+18.402344
+20.324951
+21.766968
+23.208984
+23.208984
+20.805664
+20.805664
+23.208984
+24.170288
+23.689575
+23.208984
+22.247559
+22.728271
+22.247559
+23.208984
+24.170288
+25.131714
+25.131714
+25.612305
+25.612305
+26.573608
+27.054321
+28.015503
+27.534912
+27.054321
+26.573608
+26.573608
+25.612305
+24.651001
+23.689575
+22.728271
+22.728271
+22.728271
+22.728271
+20.805664
+19.36377
+18.402344
+17.921753
+16.96045
+16.96045
+17.441162
+18.402344
+19.36377
+19.36377
+19.36377
+22.728271
+22.728271
+22.247559
+22.247559
+20.805664
+20.805664
+20.324951
+20.324951
+19.84436
+18.883057
+21.286377
+21.766968
+23.208984
+22.247559
+22.728271
+24.170288
+25.612305
+26.092896
+26.573608
+26.573608
+26.092896
+27.054321
+27.054321
+26.573608
+25.612305
+25.131714
+23.689575
+21.766968
+17.441162
+15.518433
+16.479736
+15.999023
+16.96045
+17.441162
+19.84436
+20.324951
+20.324951
+20.324951
+19.84436
+19.36377
+17.441162
+16.96045
+15.518433
+15.999023
+15.03772
+15.03772
+15.518433
+15.03772
+15.518433
+15.03772
+15.999023
+15.518433
+15.518433
+15.999023
+16.96045
+20.805664
+23.208984
+24.170288
+24.170288
+24.170288
+24.651001
+24.170288
+23.689575
+24.170288
+24.170288
+24.651001
+25.131714
+25.612305
+23.689575
+22.728271
+21.766968
+23.689575
+23.689575
+23.208984
+22.728271
+20.805664
+21.766968
+23.208984
+23.689575
+26.092896
+32.822266
+35.225464
+35.706055
+33.783447
+32.341553
+26.092896
+25.131714
+24.170288
+25.131714
+26.092896
+25.131714
+24.170288
+24.651001
+24.651001
+24.651001
+23.208984
+22.728271
+23.208984
+22.728271
+22.247559
+21.766968
+23.689575
+22.728271
+22.247559
+21.286377
+20.805664
+20.805664
+20.805664
+20.805664
+22.247559
+23.208984
+23.208984
+22.728271
+22.247559
+21.286377
+23.208984
+27.534912
+26.573608
+27.534912
+28.496216
+28.496216
+27.054321
+34.26416
+36.66748
+36.66748
+40.99341
+42.916016
+46.28064
+46.76123
+44.358032
+42.435425
+44.838623
+45.319214
+43.87732
+50.125977
+57.335815
+56.37451
+49.16455
+44.358032
+40.032104
+38.590088
+39.07068
+39.55127
+46.76123
+47.24182
+46.76123
+53.97119
+53.97119
+52.048584
+46.76123
+43.396606
+41.474
+42.916016
+42.435425
+42.435425
+38.590088
+39.07068
+36.186768
+34.744873
+35.706055
+37.14807
+38.590088
+40.512817
+42.916016
+43.87732
+44.838623
+43.396606
+45.319214
+48.20337
+49.16455
+50.606567
+50.125977
+48.20337
+47.24182
+44.838623
+41.474
+40.512817
+39.07068
+39.07068
+39.55127
+40.512817
+41.474
+41.954712
+41.474
+41.474
+40.99341
+40.99341
+40.99341
+39.55127
+39.55127
+40.032104
+40.032104
+40.512817
+39.55127
+40.032104
+39.55127
+39.07068
+38.109375
+38.109375
+37.628662
+37.628662
+37.628662
+36.186768
+33.783447
+32.341553
+30.899536
+29.93811
+28.976929
+27.534912
+26.092896
+25.612305
+25.131714
+26.573608
+27.054321
+26.573608
+26.092896
+25.612305
+27.054321
+27.054321
+26.092896
+24.651001
+25.612305
+26.092896
+25.131714
+21.766968
+20.805664
+19.36377
+18.402344
+19.84436
+20.805664
+23.689575
+28.976929
+29.93811
+28.976929
+27.054321
+26.092896
+23.689575
+27.054321
+26.573608
+25.131714
+28.976929
+27.534912
+29.93811
+31.860718
+33.302856
+34.744873
+34.26416
+34.744873
+35.225464
+36.186768
+41.474
+46.28064
+45.799927
+45.799927
+42.916016
+41.954712
+38.590088
+36.66748
+38.109375
+35.225464
+34.744873
+33.302856
+31.860718
+30.418823
+28.496216
+28.015503
+27.534912
+29.45752
+28.976929
+28.976929
+28.976929
+29.45752
+28.976929
+27.054321
+25.612305
+25.131714
+24.651001
+24.170288
+22.247559
+22.247559
+24.170288
+24.170288
+24.170288
+23.689575
+23.208984
+23.208984
+29.45752
+30.899536
+30.899536
+31.380127
+29.93811
+29.45752
+28.976929
+27.054321
+26.092896
+26.573608
+26.573608
+27.054321
+26.573608
+26.573608
+26.573608
+26.092896
+27.534912
+28.976929
+28.496216
+27.054321
+26.092896
+26.573608
+27.054321
+26.573608
+26.573608
+27.534912
+28.976929
+28.015503
+26.573608
+26.092896
+26.092896
+26.573608
+27.054321
+27.534912
+26.573608
+26.092896
+26.092896
+25.612305
+26.092896
+27.534912
+27.534912
+27.054321
+28.976929
+28.976929
+29.45752
+30.418823
+30.899536
+30.899536
+30.418823
+29.45752
+28.496216
+27.054321
+27.534912
+28.496216
+27.054321
+27.054321
+27.054321
+26.092896
+30.418823
+30.418823
+31.860718
+31.380127
+30.899536
+28.976929
+27.054321
+26.092896
+25.131714
+24.651001
+26.092896
+27.534912
+28.976929
+29.93811
+29.45752
+28.976929
+28.496216
+26.573608
+24.651001
+23.689575
+23.208984
+22.247559
+21.766968
+25.131714
+27.054321
+27.534912
+25.612305
+25.131714
+26.092896
+27.054321
+30.899536
+33.302856
+32.822266
+32.822266
+32.341553
+32.341553
+32.822266
+31.860718
+31.860718
+32.822266
+32.341553
+40.99341
+41.954712
+48.68396
+51.56787
+48.20337
+45.799927
+42.916016
+40.512817
+35.706055
+31.380127
+28.496216
+27.054321
+25.612305
+27.534912
+27.054321
+28.976929
+31.860718
+34.26416
+36.186768
+36.186768
+38.590088
+41.474
+38.590088
+40.032104
+42.435425
+38.590088
+38.109375
+30.899536
+27.534912
+26.573608
+26.092896
+25.131714
+24.170288
+23.208984
+21.766968
+20.805664
+21.286377
+21.766968
+21.286377
+20.805664
+21.286377
+22.247559
+22.247559
+22.728271
+23.689575
+24.170288
+25.612305
+24.170288
+22.728271
+23.208984
+24.170288
+24.170288
+23.689575
+24.651001
+25.612305
+26.573608
+26.573608
+25.612305
+24.651001
+24.651001
+27.054321
+28.015503
+28.015503
+27.534912
+28.015503
+29.45752
+29.45752
+29.93811
+29.93811
+29.45752
+29.45752
+28.015503
+26.092896
+24.170288
+27.054321
+26.573608
+23.208984
+19.36377
+18.883057
+17.921753
+16.96045
+15.999023
+15.518433
+16.96045
+20.324951
+24.170288
+24.651001
+26.092896
+26.573608
+28.015503
+27.534912
+27.054321
+25.612305
+26.092896
+25.612305
+24.651001
+25.612305
+26.573608
+27.534912
+26.092896
+28.015503
+28.496216
+27.534912
+28.015503
+27.054321
+26.573608
+28.015503
+27.534912
+28.976929
+28.015503
+27.054321
+28.015503
+25.131714
+23.689575
+25.131714
+25.131714
+25.131714
+27.534912
+29.45752
+28.496216
+31.860718
+30.899536
+28.015503
+25.612305
+25.131714
+23.689575
+23.208984
+23.208984
+23.208984
+22.728271
+22.728271
+24.170288
+25.131714
+26.092896
+27.054321
+27.054321
+28.015503
+29.93811
+33.783447
+35.706055
+38.109375
+40.512817
+41.954712
+43.87732
+43.396606
+41.474
+44.358032
+45.799927
+46.76123
+49.16455
+46.76123
+45.799927
+43.396606
+47.24182
+47.722534
+45.319214
+43.396606
+40.99341
+38.109375
+38.590088
+35.706055
+32.822266
+32.341553
+31.860718
+35.706055
+37.628662
+37.14807
+40.032104
+39.55127
+39.07068
+39.07068
+40.032104
+40.512817
+40.512817
+41.954712
+42.435425
+44.838623
+44.358032
+45.319214
+46.28064
+46.28064
+46.76123
+47.24182
+47.24182
+47.722534
+46.76123
+45.319214
+44.358032
+42.916016
+42.435425
+41.474
+39.55127
+36.186768
+34.26416
+36.186768
+36.186768
+39.07068
+38.109375
+37.628662
+39.07068
+37.14807
+38.109375
+38.109375
+36.66748
+38.590088
+40.512817
+43.87732
+46.76123
+47.722534
+46.28064
+45.319214
+46.28064
+45.319214
+44.358032
+41.474
+37.14807
+35.225464
+34.744873
+34.744873
+33.302856
+33.783447
+36.186768
+37.14807
+39.55127
+42.916016
+42.916016
+43.396606
+42.435425
+43.396606
+50.606567
+54.451782
+56.37451
+57.335815
+58.77771
+64.06506
+70.31348
+74.15881
+79.926636
+79.926636
+79.446045
+76.56213
+71.2749
+65.50708
+64.06506
+62.142334
+60.700317
+58.29712
+57.81653
+56.855103
+56.37451
+55.8938
+54.451782
+53.97119
+57.335815
+57.81653
+59.258423
+59.739136
+58.77771
+56.37451
+55.8938
+54.932373
+53.97119
+53.49048
+52.529175
+52.529175
+52.048584
+49.645264
+49.16455
+49.16455
+50.125977
+49.645264
+48.68396
+48.20337
+47.722534
+48.20337
+47.24182
+47.24182
+47.722534
+49.16455
+50.606567
+51.56787
+50.606567
+49.645264
+49.16455
+49.16455
+48.20337
+48.68396
+51.08716
+52.048584
+53.49048
+54.451782
+53.97119
+53.009766
+52.529175
+51.08716
+50.125977
+51.08716
+51.08716
+52.048584
+53.009766
+53.009766
+52.529175
+53.009766
+52.048584
+54.451782
+54.451782
+53.49048
+53.009766
+50.606567
+48.68396
+49.16455
+50.125977
+55.8938
+66.46826
+67.42969
+68.39087
+71.75549
+68.87158
+65.02637
+61.18103
+52.048584
+47.722534
+44.838623
+44.358032
+44.838623
+45.799927
+45.319214
+45.319214
+45.319214
+46.28064
+45.799927
+45.319214
+45.319214
+47.722534
+49.645264
+51.56787
+56.37451
+55.8938
+55.413086
+53.49048
+48.68396
+46.76123
+46.28064
+43.396606
+43.396606
+40.512817
+41.954712
+42.916016
+44.358032
+44.838623
+45.319214
+44.838623
+44.838623
+44.358032
+43.396606
+41.954712
+40.512817
+41.474
+42.916016
+43.87732
+44.358032
+44.358032
+44.838623
+44.838623
+45.799927
+44.838623
+46.28064
+47.24182
+46.76123
+46.76123
+44.358032
+44.358032
+44.838623
+45.799927
+47.24182
+46.28064
+45.799927
+46.28064
+48.20337
+48.68396
+48.68396
+51.08716
+51.56787
+54.932373
+54.932373
+53.009766
+51.08716
+52.048584
+53.009766
+55.413086
+58.29712
+58.77771
+63.103638
+63.58435
+65.98767
+68.39087
+65.98767
+65.50708
+65.02637
+65.02637
+65.50708
+62.622925
+64.545654
+64.06506
+64.06506
+64.06506
+70.79419
+70.31348
+67.91028
+67.42969
+66.948975
+66.948975
+65.02637
+65.98767
+65.98767
+67.91028
+65.98767
+63.103638
+61.18103
+61.18103
+63.58435
+64.06506
+64.06506
+66.46826
+66.948975
+66.948975
+64.545654
+64.545654
+65.02637
+67.42969
+71.2749
+70.31348
+68.39087
+69.832886
+69.832886
+69.832886
+73.19763
+79.926636
+81.368774
+79.926636
+76.56213
+75.12024
+74.63953
+74.15881
+74.15881
+72.71692
+72.71692
+74.15881
+77.52344
+79.926636
+81.368774
+82.33008
+85.21399
+84.7334
+85.69458
+91.462524
+95.30774
+92.90454
+85.21399
+81.849365
+77.52344
+75.60083
+73.19763
+71.2749
+71.2749
+70.79419
+72.236206
+73.19763
+73.67822
+71.75549
+71.2749
+68.87158
+69.832886
+70.79419
+71.2749
+71.75549
+72.71692
+72.71692
+73.19763
+74.15881
+75.60083
+77.04285
+76.56213
+76.56213
+76.08142
+78.48474
+79.446045
+80.40747
+80.40747
+79.926636
+79.926636
+80.88818
+80.88818
+80.88818
+79.446045
+78.965454
+80.40747
+80.40747
+78.48474
+78.48474
+76.56213
+75.12024
+75.12024
+75.12024
+76.08142
+77.52344
+77.52344
+78.48474
+77.04285
+75.12024
+74.63953
+75.12024
+74.15881
+72.71692
+72.71692
+72.71692
+74.15881
+76.08142
+78.48474
+80.40747
+80.88818
+81.368774
+81.368774
+79.926636
+79.926636
+79.926636
+81.368774
+81.368774
+81.849365
+78.965454
+78.00403
+77.04285
+77.52344
+75.60083
+75.60083
+67.42969
+57.81653
+54.451782
+64.545654
+64.545654
+64.545654
+64.06506
+65.02637
+65.98767
+67.42969
+67.42969
+63.103638
+59.258423
+59.739136
+60.700317
+61.661743
+62.142334
+63.58435
+65.98767
+66.46826
+67.91028
+66.948975
+65.98767
+65.98767
+65.02637
+64.06506
+63.103638
+61.661743
+60.219727
+60.700317
+62.622925
+64.545654
+66.948975
+66.948975
+68.39087
+69.832886
+70.79419
+70.79419
+70.79419
+70.79419
+70.79419
+71.2749
+66.46826
+65.02637
+61.18103
+60.219727
+62.622925
+57.81653
+55.413086
+52.529175
+41.474
+37.14807
+47.722534
+52.529175
+57.335815
+61.661743
+66.948975
+68.87158
+69.352295
+70.31348
+71.75549
+72.71692
+77.04285
+81.368774
+83.77197
+86.656006
+90.02063
+92.42395
+96.26929
+87.1366
+82.81079
+81.849365
+79.926636
+78.965454
+79.926636
+81.849365
+82.33008
+81.368774
+80.88818
+81.368774
+81.849365
+82.33008
+84.252686
+85.21399
+83.29138
+81.849365
+81.849365
+81.368774
+80.40747
+77.52344
+76.08142
+74.63953
+73.67822
+72.236206
+71.75549
+72.71692
+74.15881
+74.15881
+74.15881
+74.63953
+76.08142
+77.52344
+78.48474
+78.48474
+79.446045
+80.40747
+81.849365
+85.21399
+85.21399
+83.77197
+84.252686
+81.849365
+80.88818
+79.446045
+78.00403
+78.00403
+78.00403
+78.965454
+79.446045
+79.926636
+81.368774
+78.965454
+78.00403
+76.08142
+75.60083
+76.08142
+76.08142
+75.60083
+77.04285
+81.368774
+86.17529
+93.38513
+98.672485
+99.153076
+97.71118
+96.26929
+92.42395
+91.94324
+90.50134
+86.656006
+84.252686
+82.33008
+81.368774
+80.40747
+78.965454
+75.60083
+73.67822
+73.19763
+74.63953
+74.15881
+72.236206
+71.2749
+71.75549
+71.75549
+72.71692
+71.2749
+71.75549
+74.15881
+75.12024
+76.08142
+77.04285
+78.48474
+77.52344
+77.52344
+79.926636
+82.81079
+87.1366
+92.42395
+92.42395
+90.50134
+90.98193
+90.02063
+86.17529
+85.69458
+77.04285
+75.60083
+72.236206
+70.79419
+69.832886
+68.87158
+67.91028
+67.91028
+66.948975
+64.545654
+63.58435
+63.103638
+62.622925
+62.622925
+63.58435
+64.545654
+63.103638
+61.18103
+59.258423
+57.81653
+58.29712
+58.29712
+58.77771
+56.855103
+52.048584
+51.56787
+54.451782
+55.413086
+56.37451
+57.81653
+59.739136
+59.739136
+59.739136
+58.77771
+57.81653
+57.335815
+56.855103
+56.37451
+56.855103
+56.855103
+56.855103
+55.413086
+55.413086
+56.855103
+57.335815
+56.855103
+56.855103
+57.335815
+56.855103
+57.81653
+58.77771
+57.81653
+55.8938
+56.37451
+57.335815
+58.77771
+59.739136
+59.258423
+58.29712
+57.81653
+57.81653
+56.37451
+55.8938
+56.37451
+56.37451
+55.413086
+55.8938
+57.335815
+57.81653
+56.37451
+56.37451
+54.932373
+53.97119
+53.97119
+52.529175
+52.048584
+52.048584
+53.009766
+53.49048
+53.009766
+52.048584
+52.529175
+52.529175
+53.009766
+52.529175
+52.529175
+52.529175
+52.048584
+52.529175
+52.529175
+50.606567
+51.08716
+52.529175
+53.97119
+55.8938
+58.77771
+59.258423
+60.219727
+61.18103
+63.58435
+63.103638
+63.103638
+63.103638
+58.77771
+58.29712
+56.855103
+56.37451
+55.8938
+55.8938
+54.932373
+55.8938
+56.37451
+56.855103
+56.37451
+56.37451
+55.413086
+54.451782
+53.009766
+53.97119
+54.451782
+52.529175
+50.125977
+49.645264
+50.125977
+51.56787
+53.97119
+55.8938
+57.335815
+58.77771
+58.77771
+57.81653
+57.335815
+56.855103
+57.81653
+62.622925
+63.58435
+61.661743
+60.219727
+59.739136
+59.258423
+59.739136
+59.739136
+58.29712
+60.219727
+59.739136
+58.77771
+61.18103
+62.142334
+62.622925
+62.142334
+60.219727
+60.700317
+57.81653
+57.81653
+57.81653
+56.855103
+55.8938
+57.335815
+58.29712
+56.37451
+55.8938
+55.413086
+55.8938
+55.8938
+56.37451
+56.37451
+57.335815
+57.81653
+57.335815
+60.219727
+60.700317
+57.81653
+56.37451
+56.855103
+57.335815
+58.29712
+59.258423
+61.661743
+63.58435
+66.46826
+68.87158
+68.39087
+69.352295
+69.352295
+69.832886
+68.87158
+69.352295
+69.352295
+68.39087
+66.46826
+64.545654
+63.103638
+61.661743
+58.77771
+60.219727
+61.661743
+63.103638
+64.06506
+65.98767
+65.50708
+64.06506
+63.103638
+62.622925
+63.58435
+64.06506
+65.50708
+68.87158
+69.832886
+67.91028
+67.91028
+71.75549
+80.88818
+84.7334
+88.09802
+88.09802
+84.7334
+82.33008
+83.77197
+84.7334
+84.252686
+82.33008
+76.08142
+75.12024
+75.12024
+77.04285
+78.00403
+78.00403
+78.00403
+78.00403
+79.446045
+78.965454
+78.48474
+77.52344
+78.48474
+77.52344
+77.52344
+76.08142
+74.63953
+74.15881
+73.67822
+75.12024
+74.15881
+72.236206
+71.75549
+69.352295
+68.87158
+69.352295
+70.79419
+71.75549
+71.75549
+73.19763
+73.67822
+73.67822
+73.67822
+68.39087
+63.58435
+62.622925
+61.661743
+60.219727
+58.29712
+57.335815
+58.77771
+57.81653
+57.335815
+57.335815
+57.81653
+57.81653
+57.335815
+57.335815
+58.77771
+59.258423
+61.18103
+61.661743
+62.142334
+62.622925
+64.06506
+63.103638
+61.661743
+61.661743
+60.219727
+60.700317
+60.700317
+61.18103
+62.622925
+63.103638
+65.02637
+64.545654
+63.58435
+64.545654
+65.02637
+64.545654
+64.545654
+64.545654
+64.06506
+64.06506
+64.06506
+66.46826
+68.39087
+68.39087
+65.02637
+63.58435
+62.142334
+62.142334
+60.700317
+60.700317
+63.103638
+63.58435
+64.06506
+64.545654
+64.545654
+62.622925
+61.661743
+60.219727
+58.29712
+57.335815
+56.855103
+56.37451
+54.932373
+55.413086
+56.855103
+56.855103
+55.413086
+54.451782
+53.97119
+52.529175
+52.529175
+53.49048
+54.451782
+54.932373
+54.932373
+53.97119
+52.529175
+52.048584
+52.048584
+52.529175
+52.048584
+53.49048
+53.49048
+55.413086
+56.855103
+57.335815
+57.81653
+59.739136
+62.142334
+63.103638
+64.545654
+64.06506
+63.58435
+62.142334
+61.661743
+61.18103
+59.258423
+60.700317
+60.219727
+56.855103
+54.451782
+51.56787
+49.645264
+51.56787
+51.08716
+52.048584
+53.009766
+51.56787
+50.125977
+45.799927
+44.358032
+42.916016
+40.99341
+39.07068
+35.706055
+35.706055
+37.14807
+37.14807
+36.186768
+36.66748
+36.186768
+35.225464
+33.783447
+33.783447
+34.26416
+34.26416
+36.186768
+35.706055
+37.14807
+41.954712
+43.87732
+43.87732
+45.799927
+46.28064
+45.319214
+47.24182
+48.68396
+49.645264
+50.125977
+51.56787
+52.048584
+51.56787
+51.56787
+51.08716
+49.16455
+47.722534
+47.722534
+48.68396
+49.16455
+48.20337
+49.16455
+50.125977
+51.56787
+54.932373
+54.932373
+52.529175
+52.048584
+54.451782
+55.413086
+56.855103
+56.855103
+59.739136
+59.739136
+57.81653
+58.29712
+59.739136
+62.142334
+59.739136
+56.37451
+55.413086
+55.8938
+56.37451
+58.77771
+59.739136
+62.622925
+62.142334
+61.661743
+61.18103
+60.700317
+62.142334
+61.661743
+63.103638
+63.58435
+63.103638
+63.103638
+64.06506
+65.50708
+65.02637
+64.06506
+63.103638
+65.02637
+66.948975
+67.91028
+68.39087
+68.87158
+68.87158
+66.948975
+66.948975
+66.46826
+65.98767
+66.948975
+65.02637
+65.50708
+65.50708
+64.06506
+63.58435
+65.50708
+67.91028
+69.832886
+70.79419
+71.75549
+71.75549
+71.75549
+77.04285
+79.446045
+80.40747
+78.00403
+77.04285
+76.56213
+76.08142
+75.12024
+75.12024
+74.63953
+74.15881
+72.71692
+72.71692
+72.236206
+71.75549
+71.75549
+71.75549
+72.71692
+70.79419
+70.79419
+69.832886
+68.39087
+68.39087
+68.39087
+69.352295
+70.31348
+69.832886
+72.71692
+69.352295
+69.352295
+67.42969
+66.46826
+67.42969
+68.87158
+65.02637
+64.545654
+63.103638
+63.103638
+62.142334
+60.700317
+58.29712
+57.335815
+56.37451
+55.8938
+55.413086
+55.413086
+55.413086
+54.932373
+55.413086
+55.413086
+55.413086
+55.8938
+54.932373
+54.932373
+55.8938
+56.855103
+56.855103
+56.855103
+56.37451
+56.37451
+55.413086
+55.413086
+55.8938
+55.8938
+54.451782
+53.97119
+52.529175
+54.451782
+54.451782
+52.529175
+52.048584
+52.048584
+51.56787
+50.606567
+50.606567
+52.529175
+53.009766
+53.97119
+54.451782
+54.451782
+54.451782
+54.451782
+54.451782
+55.413086
+54.932373
+55.8938
+56.855103
+57.335815
+57.335815
+56.855103
+55.413086
+54.932373
+53.97119
+54.451782
+53.49048
+53.009766
+54.932373
+55.8938
+57.81653
+55.8938
+55.413086
+54.451782
+53.009766
+52.529175
+54.451782
+53.97119
+55.413086
+56.37451
+56.37451
+57.81653
+57.335815
+56.37451
+55.8938
+57.335815
+54.451782
+50.125977
+50.125977
+49.16455
+48.68396
+52.048584
+53.49048
+54.451782
+55.8938
+56.37451
+56.855103
+57.81653
+57.335815
+56.855103
+54.932373
+52.048584
+50.125977
+50.125977
+45.319214
+41.474
+41.474
+41.954712
+42.435425
+42.435425
+44.838623
+45.799927
+47.24182
+47.722534
+49.16455
+50.606567
+52.048584
+53.49048
+52.048584
+51.08716
+53.49048
+52.048584
+52.048584
+52.529175
+53.97119
+54.932373
+52.048584
+51.56787
+53.009766
+53.49048
+55.413086
+55.8938
+55.8938
+54.451782
+53.49048
+52.048584
+51.56787
+51.08716
+50.606567
+49.645264
+49.645264
+50.125977
+49.645264
+48.20337
+48.20337
+48.20337
+48.20337
+47.722534
+47.722534
+47.24182
+47.722534
+48.20337
+48.20337
+48.68396
+47.722534
+47.24182
+47.24182
+47.722534
+47.722534
+47.722534
+45.799927
+46.28064
+47.722534
+48.20337
+48.68396
+49.16455
+49.16455
+48.20337
+47.722534
+48.20337
+47.722534
+47.24182
+47.24182
+47.722534
+47.24182
+47.722534
+46.76123
+44.838623
+43.87732
+42.435425
+41.954712
+41.954712
+43.396606
+43.396606
+44.358032
+46.76123
+46.76123
+47.24182
+47.722534
+48.68396
+49.16455
+48.20337
+46.76123
+46.28064
+44.358032
+43.87732
+43.396606
+43.87732
+42.916016
+43.87732
+43.396606
+43.396606
+43.396606
+41.954712
+39.55127
+38.590088
+38.109375
+37.628662
+38.590088
+40.032104
+39.55127
+38.109375
+38.590088
+38.590088
+38.590088
+38.590088
+38.590088
+38.590088
+35.706055
+21.766968
+17.921753
+21.286377
+21.766968
+23.689575
+24.651001
+24.651001
+24.651001
+23.689575
+23.689575
+24.651001
+23.689575
+23.689575
+23.689575
+23.689575
+36.66748
+59.258423
+50.606567
+61.18103
+68.39087
+77.52344
+79.446045
+88.578735
+89.53992
+91.462524
+96.26929
+102.99829
+115.495605
+157.31287
+172.21326
+147.219
+145.29639
+177.50061
+134.72192
+181.82642
+187.11377
+193.3623
+191.92029
+
+
+
+
\ No newline at end of file
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/lib/log4j.jar b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/lib/log4j.jar
new file mode 100644
index 0000000..6251307
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/lib/log4j.jar differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/lib/swingx-ws.jar b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/lib/swingx-ws.jar
new file mode 100644
index 0000000..c3ff403
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/lib/swingx-ws.jar differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/lib/swingx.jar b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/lib/swingx.jar
new file mode 100644
index 0000000..7743b99
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/lib/swingx.jar differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/log4J.xml b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/log4J.xml
new file mode 100644
index 0000000..2682c52
--- /dev/null
+++ b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/log4J.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/META-INF/tp1v2-dp-HERBRON_Tanguy.kotlin_module b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/META-INF/tp1v2-dp-HERBRON_Tanguy.kotlin_module
new file mode 100644
index 0000000..8fb6019
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/META-INF/tp1v2-dp-HERBRON_Tanguy.kotlin_module differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/cache/Cache.class b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/cache/Cache.class
new file mode 100644
index 0000000..d41e17d
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/cache/Cache.class differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/cache/CacheFactory.class b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/cache/CacheFactory.class
new file mode 100644
index 0000000..babc504
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/cache/CacheFactory.class differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/cache/DiskCache.class b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/cache/DiskCache.class
new file mode 100644
index 0000000..5bf7df7
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/cache/DiskCache.class differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/cache/ICacheFactory.class b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/cache/ICacheFactory.class
new file mode 100644
index 0000000..0b39848
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/cache/ICacheFactory.class differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/cache/MemoryCache.class b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/cache/MemoryCache.class
new file mode 100644
index 0000000..2b02c73
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/cache/MemoryCache.class differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/cache/TODO.txt b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/cache/TODO.txt
new file mode 100644
index 0000000..b880ff4
--- /dev/null
+++ b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/cache/TODO.txt
@@ -0,0 +1,5 @@
+Pattern Singleton
+-------------------------
+
+1- Créer un cache mémoire pour l'application.
+2- Créer un cache disque pour l'application. Il y a un cache disque par type de map
\ No newline at end of file
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/cache/adaptor/ org.jdesktop.swingx.mapviewer.TileCache.png b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/cache/adaptor/ org.jdesktop.swingx.mapviewer.TileCache.png
new file mode 100644
index 0000000..e1b3700
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/cache/adaptor/ org.jdesktop.swingx.mapviewer.TileCache.png differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/cache/adaptor/TODO.txt b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/cache/adaptor/TODO.txt
new file mode 100644
index 0000000..e7adb8e
--- /dev/null
+++ b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/cache/adaptor/TODO.txt
@@ -0,0 +1,4 @@
+L'affichage des map permet de gérer un cache pour éviter de rechercher systématiquement les cartes.
+Ce cache est géré par la classe org.jdesktop.swingx.mapviewer.TileCache.
+
+Comment créer un cache disque ou un cache mémoire utilisable par MapViewer?
\ No newline at end of file
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/cache/handler/CompressHandler.class b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/cache/handler/CompressHandler.class
new file mode 100644
index 0000000..5626ec3
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/cache/handler/CompressHandler.class differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/cache/handler/CountHandler.class b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/cache/handler/CountHandler.class
new file mode 100644
index 0000000..c8fd769
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/cache/handler/CountHandler.class differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/cache/handler/EncryptHandler.class b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/cache/handler/EncryptHandler.class
new file mode 100644
index 0000000..8fcee4e
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/cache/handler/EncryptHandler.class differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/cache/handler/Handler.class b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/cache/handler/Handler.class
new file mode 100644
index 0000000..3d25a56
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/cache/handler/Handler.class differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/cache/handler/LogHandler.class b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/cache/handler/LogHandler.class
new file mode 100644
index 0000000..899677e
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/cache/handler/LogHandler.class differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/geo/GpxFile$GpxHandler.class b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/geo/GpxFile$GpxHandler.class
new file mode 100644
index 0000000..660be1d
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/geo/GpxFile$GpxHandler.class differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/geo/GpxFile.class b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/geo/GpxFile.class
new file mode 100644
index 0000000..b3ce2ae
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/geo/GpxFile.class differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/player/etats.png b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/player/etats.png
new file mode 100644
index 0000000..27734bb
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/player/etats.png differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/player/event/BackwardState.class b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/player/event/BackwardState.class
new file mode 100644
index 0000000..1cd9f42
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/player/event/BackwardState.class differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/player/event/ForwardState.class b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/player/event/ForwardState.class
new file mode 100644
index 0000000..100aa63
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/player/event/ForwardState.class differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/player/event/IState.class b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/player/event/IState.class
new file mode 100644
index 0000000..9987f24
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/player/event/IState.class differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/player/event/NullStateException.class b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/player/event/NullStateException.class
new file mode 100644
index 0000000..72ad0f3
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/player/event/NullStateException.class differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/player/event/PauseState.class b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/player/event/PauseState.class
new file mode 100644
index 0000000..93d7133
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/player/event/PauseState.class differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/player/event/PlayState.class b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/player/event/PlayState.class
new file mode 100644
index 0000000..af8a1a5
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/player/event/PlayState.class differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/player/event/Player.class b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/player/event/Player.class
new file mode 100644
index 0000000..8cee70a
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/player/event/Player.class differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/player/event/StopState.class b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/player/event/StopState.class
new file mode 100644
index 0000000..b32560b
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/player/event/StopState.class differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/player/ui/backward.png b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/player/ui/backward.png
new file mode 100644
index 0000000..9f9e732
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/player/ui/backward.png differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/player/ui/forward.png b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/player/ui/forward.png
new file mode 100644
index 0000000..dfc9816
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/player/ui/forward.png differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/player/ui/pause.png b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/player/ui/pause.png
new file mode 100644
index 0000000..33d9282
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/player/ui/pause.png differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/player/ui/play.png b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/player/ui/play.png
new file mode 100644
index 0000000..f0dbe43
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/player/ui/play.png differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/player/ui/stop.png b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/player/ui/stop.png
new file mode 100644
index 0000000..c2f101e
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/player/ui/stop.png differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/tile/OpenStreetMapTileFactory.class b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/tile/OpenStreetMapTileFactory.class
new file mode 100644
index 0000000..e30b369
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/tile/OpenStreetMapTileFactory.class differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/tile/OpenStreetMapTileProviderInfo.class b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/tile/OpenStreetMapTileProviderInfo.class
new file mode 100644
index 0000000..8643c95
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/tile/OpenStreetMapTileProviderInfo.class differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/ui/marker-blue.png b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/ui/marker-blue.png
new file mode 100644
index 0000000..39af9c3
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/ui/marker-blue.png differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/ui/marker-end.png b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/ui/marker-end.png
new file mode 100644
index 0000000..2fb09a9
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/ui/marker-end.png differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/ui/marker-start.png b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/ui/marker-start.png
new file mode 100644
index 0000000..7dc57d6
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/ui/marker-start.png differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/ui/repeat.png b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/ui/repeat.png
new file mode 100644
index 0000000..155b183
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/ui/repeat.png differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/util/FileUtil.class b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/util/FileUtil.class
new file mode 100644
index 0000000..265f138
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/util/FileUtil.class differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/util/GzipUtil.class b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/util/GzipUtil.class
new file mode 100644
index 0000000..cca87ac
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/util/GzipUtil.class differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/util/LoggerUtil.class b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/util/LoggerUtil.class
new file mode 100644
index 0000000..c807934
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/util/LoggerUtil.class differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/util/ProxyConfiguration.class b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/util/ProxyConfiguration.class
new file mode 100644
index 0000000..d42c90a
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/util/ProxyConfiguration.class differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/util/Wgs84.class b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/util/Wgs84.class
new file mode 100644
index 0000000..47b9a8f
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/production/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/util/Wgs84.class differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/test/tp1v2-dp-HERBRON_Tanguy/META-INF/tp1v2-dp-HERBRON_Tanguy.kotlin_module b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/test/tp1v2-dp-HERBRON_Tanguy/META-INF/tp1v2-dp-HERBRON_Tanguy.kotlin_module
new file mode 100644
index 0000000..8fb6019
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/test/tp1v2-dp-HERBRON_Tanguy/META-INF/tp1v2-dp-HERBRON_Tanguy.kotlin_module differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/test/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/cache/DiskCacheTest.class b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/test/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/cache/DiskCacheTest.class
new file mode 100644
index 0000000..2ad5ab9
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/test/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/cache/DiskCacheTest.class differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/test/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/cache/MemoryCacheTest.class b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/test/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/cache/MemoryCacheTest.class
new file mode 100644
index 0000000..c3ec735
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/test/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/cache/MemoryCacheTest.class differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/test/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/player/event/PlayerTest.class b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/test/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/player/event/PlayerTest.class
new file mode 100644
index 0000000..540d78f
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/out/test/tp1v2-dp-HERBRON_Tanguy/fr/ensim/dp/map/player/event/PlayerTest.class differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/.DS_Store b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/.DS_Store
new file mode 100644
index 0000000..8a9ccbd
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/.DS_Store differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/.DS_Store b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/.DS_Store
new file mode 100644
index 0000000..2683bba
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/.DS_Store differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/.DS_Store b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/.DS_Store
new file mode 100644
index 0000000..f724dc2
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/.DS_Store differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/.DS_Store b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/.DS_Store
new file mode 100644
index 0000000..e8ebf09
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/.DS_Store differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/cache/Cache.java b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/cache/Cache.java
new file mode 100644
index 0000000..197403f
--- /dev/null
+++ b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/cache/Cache.java
@@ -0,0 +1,42 @@
+package fr.ensim.dp.cache;
+
+import fr.ensim.dp.cache.handler.Handler;
+
+/**
+ * @author Denis Apparicio
+ */
+public abstract class Cache {
+
+ protected Handler handler;
+
+ /**
+ * @return Restitue la taille du cache
+ */
+ protected abstract int size();
+
+ /**
+ * Ajoute un tableau de byte dans le cache.
+ *
+ * @param key clé du buffer à mettre en cache.
+ * @param buf le buffer à mettre en cache.
+ * @return true
si la mise en cache a réussi,
+ * false
sinon.
+ */
+ protected abstract boolean add(String key, byte[] buf);
+
+ /**
+ * Restitue le buffer en cache.
+ *
+ * @param key clé du buffer recherchée;
+ * @return le buffer en cache ou null
si pas de cache
+ * trouvé pour cette clé
+ */
+ protected abstract byte[] retrieve(String key);
+
+ /**
+ * Efface le cache.
+ */
+ protected abstract void clear();
+
+
+}
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/cache/CacheFactory.java b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/cache/CacheFactory.java
new file mode 100644
index 0000000..a0c6ad0
--- /dev/null
+++ b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/cache/CacheFactory.java
@@ -0,0 +1,26 @@
+package fr.ensim.dp.cache;
+
+public class CacheFactory implements ICacheFactory {
+
+ private static CacheFactory INSTANCE;
+
+ public static CacheFactory getInstance()
+ {
+ if(INSTANCE == null)
+ {
+ INSTANCE = new CacheFactory();
+ }
+
+ return INSTANCE;
+ }
+
+ public Cache getMemoryCache()
+ {
+ return MemoryCache.getInstance();
+ }
+
+ public Cache getDiskCache(String mapName)
+ {
+ return DiskCache.getInstance(mapName);
+ }
+}
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/cache/DiskCache.java b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/cache/DiskCache.java
new file mode 100644
index 0000000..5cc9d48
--- /dev/null
+++ b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/cache/DiskCache.java
@@ -0,0 +1,136 @@
+package fr.ensim.dp.cache;
+
+import java.io.*;
+import java.util.HashMap;
+
+public class DiskCache extends Cache {
+
+ private static HashMap INSTANCES = new HashMap<>();
+
+ private String mapName;
+
+ public static DiskCache getInstance(String mapName) {
+ if (!INSTANCES.containsKey(mapName)) {
+ INSTANCES.put(mapName, new DiskCache(mapName));
+ }
+
+ return INSTANCES.get(mapName);
+ }
+
+ private DiskCache(String mapName) {
+ this.mapName = mapName;
+ }
+
+ @Override
+ public int size() {
+ int counter = 0;
+
+ initFolder();
+
+ File folder = new File(mapName);
+
+ try {
+ for (File file : folder.listFiles()) {
+ FileInputStream fis = new FileInputStream(file);
+
+ int r = fis.read();
+
+ while (r != -1) {
+ counter++;
+ r = fis.read();
+ }
+
+ fis.close();
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+
+ counter = -1;
+ }
+
+ return counter;
+ }
+
+ private void initFolder() {
+ File folder = new File(mapName);
+
+ if (!folder.exists()) {
+ folder.mkdirs();
+ }
+ }
+
+
+ @Override
+ public boolean add(String key, byte[] buf) {
+
+ buf = handler.doAdd(key, buf);
+
+ initFolder();
+
+ FileOutputStream fos = null;
+ try {
+ fos = new FileOutputStream(mapName + "/" + key);
+
+ fos.write(buf);
+
+ return true;
+ } catch (IOException e) {
+ e.printStackTrace();
+
+ return false;
+ } finally {
+ try {
+ if(fos != null) fos.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ @Override
+ public byte[] retrieve(String key) {
+ initFolder();
+
+ FileInputStream fis = null;
+ try {
+ fis = new FileInputStream(mapName + "/" + key);
+
+ ByteArrayOutputStream bos = new ByteArrayOutputStream();
+
+ byte[] buf = new byte[1024];
+ int len;
+
+ while ((len = fis.read(buf)) > 0) {
+ bos.write(buf, 0, len);
+ }
+
+ return handler.doRetrieve(key, bos.toByteArray());
+
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ finally {
+ try {
+ if (fis != null) fis.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ return null;
+ }
+
+ @Override
+ public void clear() {
+ File folder = new File(mapName);
+
+ if (folder.exists()) {
+
+ for (File file : folder.listFiles()) {
+ file.delete();
+ }
+
+ folder.delete();
+ }
+ }
+}
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/cache/ICacheFactory.java b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/cache/ICacheFactory.java
new file mode 100644
index 0000000..be8a846
--- /dev/null
+++ b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/cache/ICacheFactory.java
@@ -0,0 +1,8 @@
+package fr.ensim.dp.cache;
+
+public interface ICacheFactory {
+
+ Cache getMemoryCache();
+
+ Cache getDiskCache(String mapName);
+}
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/cache/MemoryCache.java b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/cache/MemoryCache.java
new file mode 100644
index 0000000..a09205c
--- /dev/null
+++ b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/cache/MemoryCache.java
@@ -0,0 +1,58 @@
+package fr.ensim.dp.cache;
+
+import java.util.HashMap;
+
+public class MemoryCache extends Cache {
+
+ private static MemoryCache INSTANCE;
+
+ private HashMap memoryMap;
+
+ public static MemoryCache getInstance()
+ {
+ if(INSTANCE == null)
+ {
+ INSTANCE = new MemoryCache();
+ }
+
+ return INSTANCE;
+ }
+
+ private MemoryCache() {
+ memoryMap = new HashMap<>();
+ }
+
+ @Override
+ public int size() {
+ int size = 0;
+
+ for(String str : memoryMap.keySet())
+ {
+ size += memoryMap.get(str).length;
+ }
+
+ return size;
+ }
+
+ @Override
+ public boolean add(String key, byte[] buf) {
+
+ buf = handler.doAdd(key, buf);
+
+ memoryMap.put(key, buf);
+
+ return memoryMap.containsKey(key);
+ }
+
+ @Override
+ public byte[] retrieve(String key) {
+
+ return handler.doRetrieve(key, memoryMap.get(key));
+ }
+
+ @Override
+ public void clear() {
+
+ memoryMap.clear();
+ }
+}
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/cache/TODO.txt b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/cache/TODO.txt
new file mode 100644
index 0000000..b880ff4
--- /dev/null
+++ b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/cache/TODO.txt
@@ -0,0 +1,5 @@
+Pattern Singleton
+-------------------------
+
+1- Créer un cache mémoire pour l'application.
+2- Créer un cache disque pour l'application. Il y a un cache disque par type de map
\ No newline at end of file
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/cache/adaptor/ org.jdesktop.swingx.mapviewer.TileCache.png b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/cache/adaptor/ org.jdesktop.swingx.mapviewer.TileCache.png
new file mode 100644
index 0000000..e1b3700
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/cache/adaptor/ org.jdesktop.swingx.mapviewer.TileCache.png differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/cache/adaptor/TODO.txt b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/cache/adaptor/TODO.txt
new file mode 100644
index 0000000..e7adb8e
--- /dev/null
+++ b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/cache/adaptor/TODO.txt
@@ -0,0 +1,4 @@
+L'affichage des map permet de gérer un cache pour éviter de rechercher systématiquement les cartes.
+Ce cache est géré par la classe org.jdesktop.swingx.mapviewer.TileCache.
+
+Comment créer un cache disque ou un cache mémoire utilisable par MapViewer?
\ No newline at end of file
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/cache/handler/CompressHandler.java b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/cache/handler/CompressHandler.java
new file mode 100644
index 0000000..ffbbbdc
--- /dev/null
+++ b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/cache/handler/CompressHandler.java
@@ -0,0 +1,97 @@
+package fr.ensim.dp.cache.handler;
+
+import fr.ensim.dp.util.LoggerUtil;
+import org.apache.log4j.Logger;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.util.zip.DataFormatException;
+import java.util.zip.Deflater;
+import java.util.zip.Inflater;
+
+public class CompressHandler extends Handler {
+
+ private static final Logger LOG = LoggerUtil.getLogger();
+
+ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // //
+ // Despite the provided utility class, I chose to use an other solution in order to learn something new //
+ // This solution makes the compressed data bigger if it's a small buffer //
+ // However, the same problem applies for the provided utility class but with even bigger compressed data //
+ // This solution : 16 bytes to 25 bytes //
+ // Utility class : 16 bytes to 37 bytes //
+ // It might change in the future if the other algorithm is better for bigger data //
+ // //
+ //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+ @Override
+ public byte[] doAdd(String key, byte[] buf) {
+
+ LOG.debug("Compressing " + buf.length + " bytes");
+
+ Deflater deflater = new Deflater();
+ deflater.setInput(buf);
+
+ ByteArrayOutputStream outputStream = new ByteArrayOutputStream(buf.length);
+ deflater.finish();
+
+ byte[] tempBuffer = new byte[1024];
+ while (!deflater.finished())
+ {
+ int count = deflater.deflate(tempBuffer);
+ outputStream.write(tempBuffer, 0, count);
+ }
+
+ try {
+ outputStream.close();
+
+ buf = outputStream.toByteArray();
+
+ LOG.debug("Data compressed into : " + buf.length + " bytes");
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ if(nextHandler != null)
+ {
+ return nextHandler.doAdd(key, buf);
+ }
+
+ return buf;
+ }
+
+ @Override
+ public byte[] doRetrieve(String key, byte[] buf) {
+
+ if(nextHandler != null)
+ {
+ buf = nextHandler.doRetrieve(key, buf);
+ }
+
+ LOG.debug("Decompressing " + buf.length + " bytes");
+
+ Inflater inflater = new Inflater();
+ inflater.setInput(buf);
+
+ ByteArrayOutputStream outputStream = new ByteArrayOutputStream(buf.length);
+
+ byte[] buffer = new byte[1024];
+ try {
+
+ while (!inflater.finished()) {
+ int count = inflater.inflate(buffer);
+ outputStream.write(buffer, 0, count);
+ }
+
+ outputStream.close();
+ } catch (DataFormatException | IOException e) {
+ e.printStackTrace();
+ }
+
+ buf = outputStream.toByteArray();
+
+ LOG.debug("Data decompressed into : " + buf.length + " bytes");
+
+ return buf;
+ }
+}
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/cache/handler/CountHandler.java b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/cache/handler/CountHandler.java
new file mode 100644
index 0000000..c32e2aa
--- /dev/null
+++ b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/cache/handler/CountHandler.java
@@ -0,0 +1,40 @@
+package fr.ensim.dp.cache.handler;
+
+import fr.ensim.dp.util.LoggerUtil;
+import org.apache.log4j.Logger;
+
+public class CountHandler extends Handler {
+
+ private static final Logger LOG = LoggerUtil.getLogger();
+ private int nbWritten = 0;
+ private int nbRead = 0;
+
+ @Override
+ public byte[] doAdd(String key, byte[] buf) {
+ nbWritten++;
+
+ LOG.debug("Nb data written : " + nbWritten);
+
+ if(nextHandler != null)
+ {
+ return nextHandler.doAdd(key, buf);
+ }
+
+ return buf;
+ }
+
+ @Override
+ public byte[] doRetrieve(String key, byte[] buf) {
+
+ if(nextHandler != null)
+ {
+ buf = nextHandler.doRetrieve(key, buf);
+ }
+
+ nbRead++;
+
+ LOG.debug("Nb data read : " + nbRead);
+
+ return buf;
+ }
+}
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/cache/handler/EncryptHandler.java b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/cache/handler/EncryptHandler.java
new file mode 100644
index 0000000..95a6553
--- /dev/null
+++ b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/cache/handler/EncryptHandler.java
@@ -0,0 +1,63 @@
+package fr.ensim.dp.cache.handler;
+
+import javax.crypto.BadPaddingException;
+import javax.crypto.Cipher;
+import javax.crypto.IllegalBlockSizeException;
+import javax.crypto.NoSuchPaddingException;
+import javax.crypto.spec.SecretKeySpec;
+import java.io.UnsupportedEncodingException;
+import java.nio.charset.StandardCharsets;
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
+
+public class EncryptHandler extends Handler {
+
+ @Override
+ public byte[] doAdd(String key, byte[] buf) {
+
+ byte[] bufEncrypt = null;
+ try {
+ Cipher cipher = Cipher.getInstance("AES");
+
+ SecretKeySpec skeySpec = new SecretKeySpec("Hello world11111".getBytes(StandardCharsets.UTF_8), "AES");
+
+ cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
+
+ bufEncrypt = cipher.doFinal(buf);
+
+ } catch (NoSuchAlgorithmException | NoSuchPaddingException | InvalidKeyException | BadPaddingException | IllegalBlockSizeException e) {
+ e.printStackTrace();
+ }
+
+ if(nextHandler != null)
+ {
+ return nextHandler.doAdd(key, bufEncrypt);
+ }
+
+ return bufEncrypt;
+ }
+
+ @Override
+ public byte[] doRetrieve(String key, byte[] buf) {
+
+ if(nextHandler != null)
+ {
+ buf = nextHandler.doRetrieve(key, buf);
+ }
+
+ try {
+ Cipher cipher = Cipher.getInstance("AES");
+
+ SecretKeySpec skeySpec = new SecretKeySpec("Hello world11111".getBytes(StandardCharsets.UTF_8), "AES");
+
+ cipher.init(Cipher.DECRYPT_MODE, skeySpec);
+
+ buf = cipher.doFinal(buf);
+
+ } catch (NoSuchAlgorithmException | NoSuchPaddingException | InvalidKeyException | BadPaddingException | IllegalBlockSizeException e) {
+ e.printStackTrace();
+ }
+
+ return buf;
+ }
+}
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/cache/handler/Handler.java b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/cache/handler/Handler.java
new file mode 100644
index 0000000..fb5e458
--- /dev/null
+++ b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/cache/handler/Handler.java
@@ -0,0 +1,10 @@
+package fr.ensim.dp.cache.handler;
+
+public abstract class Handler {
+
+ public Handler nextHandler;
+
+ public abstract byte[] doAdd(String key, byte[] buf);
+
+ public abstract byte[] doRetrieve(String key, byte[] buf);
+}
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/cache/handler/LogHandler.java b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/cache/handler/LogHandler.java
new file mode 100644
index 0000000..3c8f212
--- /dev/null
+++ b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/cache/handler/LogHandler.java
@@ -0,0 +1,35 @@
+package fr.ensim.dp.cache.handler;
+
+import fr.ensim.dp.util.LoggerUtil;
+import org.apache.log4j.Logger;
+
+public class LogHandler extends Handler {
+
+ private static final Logger LOG = LoggerUtil.getLogger();
+
+ @Override
+ public byte[] doAdd(String key, byte[] buf) {
+
+ LOG.debug("Writing " + buf.length + " bytes in memory at index " + key);
+
+ if(nextHandler != null)
+ {
+ return nextHandler.doAdd(key, buf);
+ }
+
+ return buf;
+ }
+
+ @Override
+ public byte[] doRetrieve(String key, byte[] buf) {
+
+ if(nextHandler != null)
+ {
+ buf = nextHandler.doRetrieve(key, buf);
+ }
+
+ LOG.debug("Retrieved " + buf.length + " bytes from memory cache from index " + key);
+
+ return buf;
+ }
+}
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/geo/GpxFile.java b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/geo/GpxFile.java
new file mode 100644
index 0000000..e5583a0
--- /dev/null
+++ b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/geo/GpxFile.java
@@ -0,0 +1,112 @@
+package fr.ensim.dp.geo;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
+
+import org.apache.log4j.Logger;
+import org.jdesktop.swingx.mapviewer.GeoPosition;
+import org.xml.sax.Attributes;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXParseException;
+import org.xml.sax.helpers.DefaultHandler;
+
+import fr.ensim.dp.util.LoggerUtil;
+
+/**
+ * @author Denis Apparicio
+ *
+ */
+public class GpxFile {
+ private static Logger log = LoggerUtil.getLogger();
+
+ /**
+ *
+ */
+ private GpxFile() {
+ }
+
+ /**
+ * Recupère la liste des points GPS.
+ *
+ * @param file
+ * fichier GPX
+ * @return liste des points.
+ * @throws ParserConfigurationException
+ * @throws SAXException
+ * @throws IOException
+ */
+ public static List load(File file) throws ParserConfigurationException,
+ SAXException,
+ IOException {
+ log.debug(">>load");
+
+ // Lecture
+ FileInputStream fis = new FileInputStream(file);
+
+ GpxHandler handler = null;
+ try {
+ SAXParserFactory factory = SAXParserFactory.newInstance();
+ factory.setNamespaceAware(true);
+ SAXParser parser = factory.newSAXParser();
+
+ handler = new GpxHandler();
+ parser.parse(fis, handler);
+ }
+ finally {
+ try {
+ fis.close();
+ }
+ catch (IOException ioe) {
+ log.error("", ioe);
+ }
+ }
+
+ log.debug("< listGeo = new ArrayList();
+
+ public GpxHandler() {
+ super();
+
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.xml.sax.helpers.DefaultHandler#startElement(java.lang.String,
+ * java.lang.String, java.lang.String, org.xml.sax.Attributes)
+ */
+ public void startElement(String uri,
+ String localName,
+ String qName,
+ Attributes attrs) throws SAXParseException {
+ if (localName.equals("trkpt")) {
+ // Latitude
+ String attr = attrs.getValue("lat");
+ double lat = (attr != null) ? Double.valueOf(attr) : Double.NaN;
+
+ // Longitude
+ attr = attrs.getValue("lon");
+ double lon = (attr != null) ? Double.valueOf(attr) : Double.NaN;
+
+ listGeo.add(new GeoPosition(lat, lon));
+ }
+ }
+
+ }
+
+}
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/map/.DS_Store b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/map/.DS_Store
new file mode 100644
index 0000000..81dffb1
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/map/.DS_Store differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/map/player/etats.png b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/map/player/etats.png
new file mode 100644
index 0000000..27734bb
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/map/player/etats.png differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/map/player/event/BackwardState.java b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/map/player/event/BackwardState.java
new file mode 100644
index 0000000..28a729f
--- /dev/null
+++ b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/map/player/event/BackwardState.java
@@ -0,0 +1,9 @@
+package fr.ensim.dp.map.player.event;
+
+public class BackwardState extends NullStateException {
+
+ @Override
+ public void forward(Player player) throws IllegalStateException {
+ player.setState(new ForwardState());
+ }
+}
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/map/player/event/ForwardState.java b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/map/player/event/ForwardState.java
new file mode 100644
index 0000000..478ae88
--- /dev/null
+++ b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/map/player/event/ForwardState.java
@@ -0,0 +1,9 @@
+package fr.ensim.dp.map.player.event;
+
+public class ForwardState extends NullStateException {
+
+ @Override
+ public void backward(Player player) throws IllegalStateException {
+ player.setState(new BackwardState());
+ }
+}
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/map/player/event/IState.java b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/map/player/event/IState.java
new file mode 100644
index 0000000..4030b22
--- /dev/null
+++ b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/map/player/event/IState.java
@@ -0,0 +1,14 @@
+package fr.ensim.dp.map.player.event;
+
+public interface IState {
+
+ void stop(Player player);
+
+ void play(Player player);
+
+ void pause(Player player);
+
+ void forward(Player player);
+
+ void backward(Player player);
+}
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/map/player/event/NullStateException.java b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/map/player/event/NullStateException.java
new file mode 100644
index 0000000..01b8334
--- /dev/null
+++ b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/map/player/event/NullStateException.java
@@ -0,0 +1,29 @@
+package fr.ensim.dp.map.player.event;
+
+public class NullStateException extends Throwable implements IState {
+
+ @Override
+ public void stop(Player player) throws IllegalStateException {
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public void play(Player player) throws IllegalStateException {
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public void pause(Player player) throws IllegalStateException {
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public void forward(Player player) throws IllegalStateException {
+ throw new IllegalStateException();
+ }
+
+ @Override
+ public void backward(Player player) throws IllegalStateException {
+ throw new IllegalStateException();
+ }
+}
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/map/player/event/PauseState.java b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/map/player/event/PauseState.java
new file mode 100644
index 0000000..508b75e
--- /dev/null
+++ b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/map/player/event/PauseState.java
@@ -0,0 +1,7 @@
+package fr.ensim.dp.map.player.event;
+
+public class PauseState extends NullStateException {
+
+
+
+}
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/map/player/event/PlayState.java b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/map/player/event/PlayState.java
new file mode 100644
index 0000000..bcc105a
--- /dev/null
+++ b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/map/player/event/PlayState.java
@@ -0,0 +1,24 @@
+package fr.ensim.dp.map.player.event;
+
+public class PlayState extends NullStateException {
+
+ @Override
+ public void forward(Player player) throws IllegalStateException {
+ player.setState(new ForwardState());
+ }
+
+ @Override
+ public void backward(Player player) throws IllegalStateException {
+ player.setState(new BackwardState());
+ }
+
+ @Override
+ public void stop(Player player) throws IllegalStateException {
+ player.setState(new StopState());
+ }
+
+ @Override
+ public void pause(Player player) throws IllegalStateException {
+ player.setState(new PauseState());
+ }
+}
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/map/player/event/Player.java b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/map/player/event/Player.java
new file mode 100644
index 0000000..3d614a8
--- /dev/null
+++ b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/map/player/event/Player.java
@@ -0,0 +1,36 @@
+package fr.ensim.dp.map.player.event;
+
+public class Player {
+
+ private IState state;
+
+ public void setState(IState state)
+ {
+ this.state = state;
+ }
+
+ public IState getState()
+ {
+ return state;
+ }
+
+ public void stop() {
+ state.stop(this);
+ }
+
+ public void play() {
+ state.play(this);
+ }
+
+ public void pause() {
+ state.pause(this);
+ }
+
+ public void forward() {
+ state.forward(this);
+ }
+
+ public void backward() {
+ state.backward(this);
+ }
+}
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/map/player/event/StopState.java b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/map/player/event/StopState.java
new file mode 100644
index 0000000..7560af5
--- /dev/null
+++ b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/map/player/event/StopState.java
@@ -0,0 +1,9 @@
+package fr.ensim.dp.map.player.event;
+
+public class StopState extends NullStateException {
+
+ @Override
+ public void play(Player player) throws IllegalStateException {
+ player.setState(new PlayState());
+ }
+}
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/map/player/ui/backward.png b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/map/player/ui/backward.png
new file mode 100644
index 0000000..9f9e732
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/map/player/ui/backward.png differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/map/player/ui/forward.png b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/map/player/ui/forward.png
new file mode 100644
index 0000000..dfc9816
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/map/player/ui/forward.png differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/map/player/ui/pause.png b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/map/player/ui/pause.png
new file mode 100644
index 0000000..33d9282
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/map/player/ui/pause.png differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/map/player/ui/play.png b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/map/player/ui/play.png
new file mode 100644
index 0000000..f0dbe43
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/map/player/ui/play.png differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/map/player/ui/stop.png b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/map/player/ui/stop.png
new file mode 100644
index 0000000..c2f101e
Binary files /dev/null and b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/map/player/ui/stop.png differ
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/map/tile/OpenStreetMapTileFactory.java b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/map/tile/OpenStreetMapTileFactory.java
new file mode 100644
index 0000000..6400944
--- /dev/null
+++ b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/map/tile/OpenStreetMapTileFactory.java
@@ -0,0 +1,82 @@
+package fr.ensim.dp.map.tile;
+
+import org.jdesktop.swingx.mapviewer.AbstractTileFactory;
+
+
+/**
+ * @author Denis Apparicio
+ *
+ */
+public final class OpenStreetMapTileFactory extends AbstractTileFactory {
+ // mapnik
+ private static final String MAPNIK = "mapnik";
+
+ private static final String MAPNIK_URL = "http://tile.openstreetmap.org";
+
+ // OSM France
+ private static final String OSM_FRANCE = "OSM France";
+
+ private static final String OSM_FRANCE_URL = "http://a.tile.openstreetmap.fr/osmfr";
+
+ // Carto Light
+ private static final String LANDSCAPE = "Thunderforest Landscape";
+
+ private static final String LANDSCAPE_URL = "https://cartodb-basemaps-1.global.ssl.fastly.net/light_all";
+
+ // OpenPtMap
+ private static final String TRANSPORT = "Transport OpenPtMap";
+
+ private static final String TRANSPORT_URL = "http://www.openptmap.org/tiles";
+
+ private static final String[] TILE_NAMES = { MAPNIK,
+ OSM_FRANCE,
+ LANDSCAPE,
+ TRANSPORT};
+
+ private OpenStreetMapTileFactory(OpenStreetMapTileProviderInfo tileProviderInfo) {
+ super(tileProviderInfo);
+ //TODO valoriser Le DiskCache adpator
+ // methode void org.jdesktop.swingx.mapviewer.AbstractTileFactory.setTileCache(TileCache cache)
+ //setTileCache(disk cache adaptor);
+ }
+
+ /**
+ * @param name
+ * @return
+ */
+ public static AbstractTileFactory getTileFactory(String name) {
+ if (MAPNIK.equals(name)) {
+ return createMap(MAPNIK_URL, MAPNIK);
+ }
+ if (OSM_FRANCE.equals(name)) {
+ return createMap(OSM_FRANCE_URL, OSM_FRANCE);
+ }
+ if (LANDSCAPE.equals(name)) {
+ return createMap(LANDSCAPE_URL, LANDSCAPE);
+ }
+ if (TRANSPORT.equals(name)) {
+ return createMap(TRANSPORT_URL, TRANSPORT);
+ }
+
+ throw new IllegalArgumentException("Tile inconnu " + name);
+ }
+
+
+ /**
+ *
+ * @return Restitue la map Mapnik
+ */
+ private static AbstractTileFactory createMap(String url, String name) {
+ OpenStreetMapTileProviderInfo info = new OpenStreetMapTileProviderInfo(url, name);
+ return new OpenStreetMapTileFactory(info);
+ }
+
+ /**
+ * Restitue les noms des maps.
+ *
+ * @return les noms des maps
+ */
+ public static String[] getTileNames() {
+ return TILE_NAMES;
+ }
+}
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/map/tile/OpenStreetMapTileProviderInfo.java b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/map/tile/OpenStreetMapTileProviderInfo.java
new file mode 100644
index 0000000..195e7df
--- /dev/null
+++ b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/map/tile/OpenStreetMapTileProviderInfo.java
@@ -0,0 +1,59 @@
+package fr.ensim.dp.map.tile;
+
+import org.apache.log4j.Logger;
+import org.jdesktop.swingx.mapviewer.TileFactoryInfo;
+
+import fr.ensim.dp.util.LoggerUtil;
+
+/**
+ * @author Denis Apparicio
+ *
+ */
+public class OpenStreetMapTileProviderInfo extends TileFactoryInfo {
+ private static Logger log = LoggerUtil.getLogger();
+
+ private static final int TOP_ZOOM_LEVEL = 17;
+
+ protected OpenStreetMapTileProviderInfo(String url, String name) {
+ // tile
+ // size
+ // is 256
+ // and x/y
+ // orientation
+ // is normal
+ super(name,
+ 1,
+ TOP_ZOOM_LEVEL - 2,
+ TOP_ZOOM_LEVEL,
+ 256,
+ true,
+ true,
+ url,
+ "x",
+ "y",
+ "z");
+
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.jdesktop.swingx.mapviewer.TileFactoryInfo#getTileUrl(int, int,
+ * int)
+ */
+ public String getTileUrl(int x, int y, int zoom) {
+ if (log.isDebugEnabled()) {
+ log.debug(">>getTileUrl [" + x + ", " + y + ", " + zoom + "]");
+ }
+
+ zoom = TOP_ZOOM_LEVEL - zoom;
+ String url = this.baseURL + "/" + zoom + "/" + x + "/" + y + ".png";
+
+ if (log.isDebugEnabled()) {
+ log.debug("<true si ok
+ */
+ public static boolean deleteDirectory(File path) {
+ if (path.exists()) {
+ File[] files = path.listFiles();
+ if (files != null) {
+ for (File f : files) {
+ if (f.isFile()) {
+ f.delete();
+ }
+ }
+ }
+ }
+ return (path.delete());
+ }
+
+ /**
+ * Restitue la taille d'un répertoire.
+ *
+ * @param path
+ * le répertoire.
+ * @return la taille d'un répertoire.
+ */
+ public static long dirLength(File path) {
+ long length = 0;
+ if (path.exists()) {
+ File[] files = path.listFiles();
+ if (files != null) {
+ for (File f : files) {
+ if (f.isFile()) {
+ length += f.length();
+ }
+ }
+ }
+ }
+ return length;
+ }
+
+ /**
+ * Copie vers un fichier.
+ *
+ * @param in
+ * l'inpustream à copier.
+ * @param file
+ * la destination.
+ */
+ public static boolean copy(InputStream in, File file) {
+ byte[] buf = new byte[4096];
+ int len = -1;
+
+ boolean isOk = false;
+ boolean isCopyBegin = false;
+ FileOutputStream out = null;
+ try {
+ out = new FileOutputStream(file);
+ isCopyBegin = true;
+ while ((len = in.read(buf)) > 0) {
+ out.write(buf, 0, len);
+ }
+ in.close();
+ out.close();
+ isOk = true;
+ }
+ catch (Throwable th) {
+ isOk = false;
+ file.delete();
+ try {
+ if (out != null) {
+ out.close();
+ }
+ }
+ catch (IOException ioe) {
+ }
+ try {
+ if (in != null) {
+ in.close();
+ }
+ }
+ catch (IOException ioe) {
+ }
+ // suppression du fichier
+ if (isCopyBegin && file.exists()) {
+ file.delete();
+ }
+ }
+
+ return isOk;
+ }
+
+ /**
+ * @return Lecture d'un fichier dans un tableau de byte.
+ */
+ public static byte[] readFile(File file) throws IOException {
+ FileInputStream fis = null;
+ try {
+ ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ fis = new FileInputStream(file);
+ byte[] buf = new byte[1024];
+ int len = 0;
+ while ((len = fis.read(buf)) != -1) {
+ bos.write(buf, 0, len);
+ }
+
+ return bos.toByteArray();
+ }
+ finally {
+ if (fis != null) {
+ try {
+ fis.close();
+ }
+ catch (IOException e) {
+ }
+ }
+ }
+ }
+}
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/util/GzipUtil.java b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/util/GzipUtil.java
new file mode 100644
index 0000000..4810aae
--- /dev/null
+++ b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/util/GzipUtil.java
@@ -0,0 +1,61 @@
+package fr.ensim.dp.util;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.util.zip.GZIPInputStream;
+import java.util.zip.GZIPOutputStream;
+
+/**
+ * @author Denis Apparicio
+ * @version 1.0
+ */
+public class GzipUtil {
+
+ /** Default buffer size */
+ private static final int DEFAULT_BUFFER_SIZE = 4096;
+
+ /**
+ * Compression d'un buffer
+ *
+ * @param uncompressed
+ * le buffer
+ * @return le buffer compressé
+ * @throws IOException
+ */
+
+ public static final byte[] compress(final byte[] uncompressedBytes) throws IOException {
+ ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ GZIPOutputStream gzip = new GZIPOutputStream(bos);
+
+ gzip.write(uncompressedBytes, 0, uncompressedBytes.length);
+ gzip.close();
+
+ return bos.toByteArray();
+ }
+
+ /**
+ * Uncompress a previously compressed string; this method is the inverse of
+ * the compress method.
+ *
+ * @param byte array containing compressed data
+ * @return uncompressed string
+ * @throws IOException
+ * if the inflation fails
+ */
+
+ public static final byte[] uncompress(final byte[] compressed) throws IOException {
+
+ ByteArrayInputStream bais = new ByteArrayInputStream(compressed);
+ GZIPInputStream gunzip = new GZIPInputStream(bais);
+
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ int len = 0;
+ byte[] tempBytes = new byte[DEFAULT_BUFFER_SIZE];
+ while ((len = gunzip.read(tempBytes, 0, tempBytes.length)) != -1) {
+ baos.write(tempBytes, 0, len);
+ }
+
+ return baos.toByteArray();
+ }
+}
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/util/LoggerUtil.java b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/util/LoggerUtil.java
new file mode 100644
index 0000000..8aa25a1
--- /dev/null
+++ b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/util/LoggerUtil.java
@@ -0,0 +1,33 @@
+package fr.ensim.dp.util;
+
+import org.apache.log4j.Logger;
+import org.apache.log4j.xml.DOMConfigurator;
+
+/**
+ * Classe Utilitaire pour récupérer un logger.
+ *
+ * @author Denis Apparicio.
+ * @version 1.0
+ *
+ */
+public final class LoggerUtil {
+
+ static {
+ DOMConfigurator.configure("log4j.xml");
+ }
+
+ /**
+ * Constructeur privé pour éviter la création d'objet.
+ */
+ private LoggerUtil() {
+ }
+
+ /**
+ * @return Restitue le logger pour la classe appelante.
+ */
+ public static Logger getLogger() {
+ // Le 2nd element de la stacktrace correspond a la trace appelante.
+ String clazzName = new Exception().getStackTrace()[1].getClassName();
+ return Logger.getLogger(clazzName);
+ }
+}
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/util/ProxyConfiguration.java b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/util/ProxyConfiguration.java
new file mode 100644
index 0000000..e26e676
--- /dev/null
+++ b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/util/ProxyConfiguration.java
@@ -0,0 +1,16 @@
+package fr.ensim.dp.util;
+
+/**
+ * @author Denis Apparicio
+ *
+ */
+public class ProxyConfiguration {
+
+ /**
+ * Configuration du proxy.
+ */
+ public static void configure() {
+ System.setProperty("http.proxyHost", "vproxy.univ-lemans.fr");
+ System.setProperty("http.proxyPort", "3128");
+ }
+}
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/util/Wgs84.java b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/util/Wgs84.java
new file mode 100644
index 0000000..3862f0b
--- /dev/null
+++ b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/src/fr/ensim/dp/util/Wgs84.java
@@ -0,0 +1,56 @@
+package fr.ensim.dp.util;
+
+/**
+ * @author Denis Apparicio
+ *
+ */
+public final class Wgs84 {
+
+ /**
+ *
+ */
+ private Wgs84() {
+ }
+
+ /**
+ * Calcule la distance entre deux points.
+ *
+ * @param lat1
+ * @param long1
+ * @param lat2
+ * @param long2
+ * @return la distance entre deux points en mêtre.
+ */
+ public static double computeWsg84(double lat1,
+ double lon1,
+ double lat2,
+ double lon2) {
+ double val;
+ double distance = 0;
+
+ double p = Math.PI / 180;
+ double lat1p = lat1 * p;
+ double lon1p = lon1 * p;
+ double lat2p = lat2 * p;
+ double lon2p = lon2 * p;
+
+ val = Math.cos(lat2p) * Math.cos(lat1p) * Math.cos(lon1p - lon2p)
+ + Math.sin(lat2p) * Math.sin(lat1p);
+
+ if (val > 1) {
+ val = 1;
+ }
+ else if (val < -1) {
+ val = -1;
+ }
+ distance = 6378137 * Math.acos(val);
+ return distance;
+
+ // val = 2 * Math.pow(Math.asin(Math.sqrt(Math.sin((lat1p - lat2p) / 2))),
+ // 2)
+ // + Math.cos(lat1p) * Math.cos(lat2p)
+ // * Math.pow(Math.sin((lon1p - lon2p) / 2), 2);
+ // distance = 6378137 * val;
+ // return Math.abs(distance);
+ }
+}
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/test/fr/ensim/dp/cache/DiskCacheTest.java b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/test/fr/ensim/dp/cache/DiskCacheTest.java
new file mode 100644
index 0000000..ed2048c
--- /dev/null
+++ b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/test/fr/ensim/dp/cache/DiskCacheTest.java
@@ -0,0 +1,67 @@
+package fr.ensim.dp.cache;
+
+import fr.ensim.dp.cache.handler.CompressHandler;
+import fr.ensim.dp.cache.handler.CountHandler;
+import fr.ensim.dp.cache.handler.EncryptHandler;
+import fr.ensim.dp.cache.handler.LogHandler;
+import fr.ensim.dp.util.LoggerUtil;
+import org.apache.log4j.Logger;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+public class DiskCacheTest {
+
+ private static final Logger LOG = LoggerUtil.getLogger();
+
+ private byte[] buffer = {1, 2, 3};
+ private byte[] buffer2 = {3, 5, 6, 7, 8, 9};
+
+ @Test
+ public void test() {
+ LOG.debug("Testing DiskCache");
+
+ DiskCache diskCache = DiskCache.getInstance("landscape");
+
+ LogHandler logHandler = new LogHandler();
+ CountHandler countHandler = new CountHandler();
+ EncryptHandler encryptHandler = new EncryptHandler();
+ CompressHandler compressHandler = new CompressHandler();
+
+ logHandler.nextHandler = countHandler;
+ countHandler.nextHandler = encryptHandler;
+ encryptHandler.nextHandler = compressHandler;
+
+ diskCache.handler = logHandler;
+
+ DiskCache diskCache1 = DiskCache.getInstance("landscape");
+ DiskCache diskCache2 = DiskCache.getInstance("magnik");
+
+ assertNotNull(diskCache);
+ assertEquals(diskCache, diskCache1);
+ assertNotEquals(diskCache, diskCache2);
+ assertNotEquals(diskCache1, diskCache2);
+
+ diskCache.clear();
+ diskCache1.clear();
+ diskCache2.clear();
+
+ diskCache.add("FIRSTTILE", buffer);
+ diskCache.add("SECONDBUFFER", buffer2);
+
+ //Cannot be true because the encryption, if applied, changes the size of
+ //the buffer stored in memory, which is computed here
+ assertNotEquals(buffer.length + buffer2.length, diskCache.size());
+
+ assertArrayEquals(buffer, diskCache.retrieve("FIRSTTILE"));
+ assertArrayEquals(buffer2, diskCache.retrieve("SECONDBUFFER"));
+
+ diskCache.clear();
+
+ assertEquals(0, diskCache.size());
+ assertEquals(0, diskCache1.size());
+
+ LOG.debug("End of DiskCache test");
+ }
+
+}
\ No newline at end of file
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/test/fr/ensim/dp/cache/MemoryCacheTest.java b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/test/fr/ensim/dp/cache/MemoryCacheTest.java
new file mode 100644
index 0000000..8685ada
--- /dev/null
+++ b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/test/fr/ensim/dp/cache/MemoryCacheTest.java
@@ -0,0 +1,64 @@
+package fr.ensim.dp.cache;
+
+import fr.ensim.dp.cache.handler.CompressHandler;
+import fr.ensim.dp.cache.handler.CountHandler;
+import fr.ensim.dp.cache.handler.EncryptHandler;
+import fr.ensim.dp.cache.handler.LogHandler;
+import fr.ensim.dp.util.LoggerUtil;
+import org.apache.log4j.Logger;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+public class MemoryCacheTest {
+
+ private static final Logger LOG = LoggerUtil.getLogger();
+
+ private byte[] buffer = {0x01, 0x02, 0x03};
+ private byte[] buffer2 = {0x03, 0x05, 0x06, 0x07, 0x08, 0x09};
+
+ @Test
+ public void test() {
+
+ LOG.debug("Testing MemoryCache");
+
+ Cache memoryCache = CacheFactory.getInstance().getMemoryCache();
+
+ LogHandler logHandler = new LogHandler();
+ CountHandler countHandler = new CountHandler();
+ EncryptHandler encryptHandler = new EncryptHandler();
+ CompressHandler compressHandler = new CompressHandler();
+
+ logHandler.nextHandler = countHandler;
+ countHandler.nextHandler = encryptHandler;
+ encryptHandler.nextHandler = compressHandler;
+
+ memoryCache.handler = logHandler;
+
+ MemoryCache memoryCache1 = MemoryCache.getInstance();
+
+ assertNotNull(memoryCache);
+ assertEquals(memoryCache, memoryCache1);
+
+
+ //Size and add
+ memoryCache.add("buffer", buffer);
+ memoryCache.add("buffer2", buffer2);
+
+ //Cannot be true because the encryption, if applied, changes the size of
+ //the buffer stored in memory, which is computed here
+ assertNotEquals(buffer.length + buffer2.length, memoryCache.size());
+
+ //Retrieve test and singleton verification
+ assertArrayEquals(buffer, memoryCache.retrieve("buffer"));
+ assertArrayEquals(buffer2, memoryCache1.retrieve("buffer2"));
+
+ //Cache verification with singleton last verification
+ memoryCache.clear();
+
+ assertEquals(0, memoryCache.size());
+ assertEquals(0, memoryCache1.size());
+
+ LOG.debug("End of MemoryCache test");
+ }
+}
\ No newline at end of file
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/test/fr/ensim/dp/map/player/event/PlayerTest.java b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/test/fr/ensim/dp/map/player/event/PlayerTest.java
new file mode 100644
index 0000000..68102ca
--- /dev/null
+++ b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/test/fr/ensim/dp/map/player/event/PlayerTest.java
@@ -0,0 +1,74 @@
+package fr.ensim.dp.map.player.event;
+
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+public class PlayerTest {
+
+ private static Player player = new Player();
+
+ @Test(expected=IllegalStateException.class)
+ public void stop() {
+ player.setState(new PlayState());
+ player.stop();
+
+ assertTrue(player.getState() instanceof StopState);
+
+ player.setState(new PauseState());
+ player.stop();
+ }
+
+ @Test(expected=IllegalStateException.class)
+ public void play() {
+ player.setState(new StopState());
+ player.play();
+
+ assertTrue(player.getState() instanceof PlayState);
+
+ player.setState(new PauseState());
+ player.play();
+ }
+
+ @Test(expected=IllegalStateException.class)
+ public void pause() {
+ player.setState(new PlayState());
+ player.pause();
+
+ assertTrue(player.getState() instanceof PauseState);
+
+ player.play();
+ }
+
+ @Test(expected=IllegalStateException.class)
+ public void forward() {
+ player.setState(new BackwardState());
+ player.forward();
+
+ assertTrue(player.getState() instanceof ForwardState);
+
+ player.setState(new PlayState());
+ player.forward();
+
+ assertTrue(player.getState() instanceof ForwardState);
+
+ player.setState(new PauseState());
+ player.forward();
+ }
+
+ @Test(expected=IllegalStateException.class)
+ public void backward() {
+ player.setState(new ForwardState());
+ player.backward();
+
+ assertTrue(player.getState() instanceof BackwardState);
+
+ player.setState(new PlayState());
+ player.backward();
+
+ assertTrue(player.getState() instanceof BackwardState);
+
+ player.setState(new PauseState());
+ player.backward();
+ }
+}
\ No newline at end of file
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/tp.log b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/tp.log
new file mode 100644
index 0000000..4f9fff6
--- /dev/null
+++ b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/tp.log
@@ -0,0 +1,36 @@
+19:11:22,291 DEBUG fr.ensim.dp.cache.DiskCacheTest - Testing DiskCache
+19:11:22,295 DEBUG fr.ensim.dp.cache.handler.LogHandler - Writing 3 bytes in memory at index FIRSTTILE
+19:11:22,295 DEBUG fr.ensim.dp.cache.handler.CountHandler - Nb data written : 1
+19:11:22,759 DEBUG fr.ensim.dp.cache.handler.CompressHandler - Compressing 16 bytes
+19:11:22,759 DEBUG fr.ensim.dp.cache.handler.CompressHandler - Data compressed into : 25 bytes
+19:11:22,767 DEBUG fr.ensim.dp.cache.handler.LogHandler - Writing 6 bytes in memory at index SECONDBUFFER
+19:11:22,767 DEBUG fr.ensim.dp.cache.handler.CountHandler - Nb data written : 2
+19:11:22,767 DEBUG fr.ensim.dp.cache.handler.CompressHandler - Compressing 16 bytes
+19:11:22,767 DEBUG fr.ensim.dp.cache.handler.CompressHandler - Data compressed into : 25 bytes
+19:11:22,775 DEBUG fr.ensim.dp.cache.handler.CompressHandler - Decompressing 25 bytes
+19:11:22,779 DEBUG fr.ensim.dp.cache.handler.CompressHandler - Data decompressed into : 16 bytes
+19:11:22,779 DEBUG fr.ensim.dp.cache.handler.CountHandler - Nb data read : 1
+19:11:22,779 DEBUG fr.ensim.dp.cache.handler.LogHandler - Retrieved 3 bytes from memory cache from index FIRSTTILE
+19:11:22,783 DEBUG fr.ensim.dp.cache.handler.CompressHandler - Decompressing 25 bytes
+19:11:22,783 DEBUG fr.ensim.dp.cache.handler.CompressHandler - Data decompressed into : 16 bytes
+19:11:22,783 DEBUG fr.ensim.dp.cache.handler.CountHandler - Nb data read : 2
+19:11:22,783 DEBUG fr.ensim.dp.cache.handler.LogHandler - Retrieved 6 bytes from memory cache from index SECONDBUFFER
+19:11:22,787 DEBUG fr.ensim.dp.cache.DiskCacheTest - End of DiskCache test
+19:11:22,795 DEBUG fr.ensim.dp.cache.MemoryCacheTest - Testing MemoryCache
+19:11:22,795 DEBUG fr.ensim.dp.cache.handler.LogHandler - Writing 3 bytes in memory at index buffer
+19:11:22,795 DEBUG fr.ensim.dp.cache.handler.CountHandler - Nb data written : 1
+19:11:22,799 DEBUG fr.ensim.dp.cache.handler.CompressHandler - Compressing 16 bytes
+19:11:22,799 DEBUG fr.ensim.dp.cache.handler.CompressHandler - Data compressed into : 25 bytes
+19:11:22,799 DEBUG fr.ensim.dp.cache.handler.LogHandler - Writing 6 bytes in memory at index buffer2
+19:11:22,799 DEBUG fr.ensim.dp.cache.handler.CountHandler - Nb data written : 2
+19:11:22,799 DEBUG fr.ensim.dp.cache.handler.CompressHandler - Compressing 16 bytes
+19:11:22,799 DEBUG fr.ensim.dp.cache.handler.CompressHandler - Data compressed into : 25 bytes
+19:11:22,799 DEBUG fr.ensim.dp.cache.handler.CompressHandler - Decompressing 25 bytes
+19:11:22,799 DEBUG fr.ensim.dp.cache.handler.CompressHandler - Data decompressed into : 16 bytes
+19:11:22,803 DEBUG fr.ensim.dp.cache.handler.CountHandler - Nb data read : 1
+19:11:22,803 DEBUG fr.ensim.dp.cache.handler.LogHandler - Retrieved 3 bytes from memory cache from index buffer
+19:11:22,803 DEBUG fr.ensim.dp.cache.handler.CompressHandler - Decompressing 25 bytes
+19:11:22,803 DEBUG fr.ensim.dp.cache.handler.CompressHandler - Data decompressed into : 16 bytes
+19:11:22,803 DEBUG fr.ensim.dp.cache.handler.CountHandler - Nb data read : 2
+19:11:22,803 DEBUG fr.ensim.dp.cache.handler.LogHandler - Retrieved 6 bytes from memory cache from index buffer2
+19:11:22,807 DEBUG fr.ensim.dp.cache.MemoryCacheTest - End of MemoryCache test
diff --git a/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/tp1v2-dp-HERBRON_Tanguy.iml b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/tp1v2-dp-HERBRON_Tanguy.iml
new file mode 100644
index 0000000..d4450ba
--- /dev/null
+++ b/ENSIM/Java/tp1v2-dp-HERBRON_Tanguy/tp1v2-dp-HERBRON_Tanguy.iml
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file