diff --git a/experiment/meteo_france_data/scm_models_data/scm_constants.py b/experiment/meteo_france_data/scm_models_data/scm_constants.py index 739eaf852866a73bdd4e61eddea68c5bcc5019db..0bbf64f50362fec3efc0a35e80a29628499ee815 100644 --- a/experiment/meteo_france_data/scm_models_data/scm_constants.py +++ b/experiment/meteo_france_data/scm_models_data/scm_constants.py @@ -49,6 +49,9 @@ STUDY_TYPES = ['alp_flat', 'postes', 'alp_allslopes'] ORIENTATIONS = [0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0] SLOPES = [20.0, 40.0] +# Slopes are in degrees, 3 slopes (0, 20°, 40°) +# Aspect are in the order N then NE, then E, in the same order as specified above +# Its seems logical they start with the east, just like following clockwise ORDERED_ALLSLOPES_ALTITUDES = [300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 4200.0, 4200.0, 4200.0, 4200.0, 4200.0, 4200.0, 4200.0, 4200.0, 4200.0, 4200.0, 4200.0, 4200.0, 4200.0, 4200.0, 4200.0, 4200.0, 4200.0, 4500.0, 4500.0, 4500.0, 4500.0, 4500.0, 4500.0, 4500.0, 4500.0, 4500.0, 4500.0, 4500.0, 4500.0, 4500.0, 4500.0, 4500.0, 4500.0, 4500.0, 4800.0, 4800.0, 4800.0, 4800.0, 4800.0, 4800.0, 4800.0, 4800.0, 4800.0, 4800.0, 4800.0, 4800.0, 4800.0, 4800.0, 4800.0, 4800.0, 4800.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 4200.0, 4200.0, 4200.0, 4200.0, 4200.0, 4200.0, 4200.0, 4200.0, 4200.0, 4200.0, 4200.0, 4200.0, 4200.0, 4200.0, 4200.0, 4200.0, 4200.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 3900.0, 4200.0, 4200.0, 4200.0, 4200.0, 4200.0, 4200.0, 4200.0, 4200.0, 4200.0, 4200.0, 4200.0, 4200.0, 4200.0, 4200.0, 4200.0, 4200.0, 4200.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 3600.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 3300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 300.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 600.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 900.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1200.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1500.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 1800.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2100.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2400.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 2700.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0, 3000.0] ORDERED_ALLSLOPES_ORIENTATIONS= [-1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, -1.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0, 0.0, 45.0, 90.0, 135.0, 180.0, 225.0, 270.0, 315.0] ORDERED_ALLSLOPES_SLOPES = [0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 0.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0, 40.0] diff --git a/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/altitude_hypercube_visualizer.py b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/altitude_hypercube_visualizer.py index 4d3caf2e67a9d5d4097baf83c1ff2ff13eb95a19..3e7249c78b867fb5e57d273eebdb6ab47d907078 100644 --- a/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/altitude_hypercube_visualizer.py +++ b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/altitude_hypercube_visualizer.py @@ -371,6 +371,8 @@ class AltitudeHypercubeVisualizer(AbstractHypercubeVisualizer): def set_trend_test_reparition_title(self, subtitle, set=True): # Global information title = 'Repartition of {} trends'.format(subtitle) + if self.study.has_orientation: + title += ' orientation {} degrees'.format(int(self.study.orientation)) title += ' at altitude={}m \nfor the starting_year={}'.format(self.altitudes[0], self.first_starting_year) if len(self.starting_years) > 1: title += ' until starting_year={}'.format(self.last_starting_year) diff --git a/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/utils_hypercube.py b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/utils_hypercube.py index 910fde9938f159c966cb3a02eb492fdaf807d3ec..c756b0abf86f24e7144db5a3e626f4d8bb2f3417 100644 --- a/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/utils_hypercube.py +++ b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/utils_hypercube.py @@ -31,10 +31,12 @@ def load_quantity_visualizer(quantity_hypercube_class, altitudes, last_starting_ def load_altitude_visualizer(altitude_hypercube_class, altitudes, last_starting_year, nb_data_reduced_for_speed, only_first_one, save_to_file, study_classes, trend_test_class - , exact_starting_year=None, first_starting_year=1958): + , exact_starting_year=None, first_starting_year=1958, + orientations=None): visualizers = [StudyVisualizer(study, temporal_non_stationarity=True, verbose=False, multiprocessing=True) for study in study_iterator_global(study_classes=study_classes, only_first_one=only_first_one, - altitudes=altitudes)] + altitudes=altitudes, + orientations=orientations)] altitude_to_visualizer = OrderedDict(zip(altitudes, visualizers)) visualizer = altitude_hypercube_class(altitude_to_visualizer, save_to_file=save_to_file, diff --git a/experiment/meteo_france_data/scm_models_data/visualization/study_visualization/main_study_visualizer.py b/experiment/meteo_france_data/scm_models_data/visualization/study_visualization/main_study_visualizer.py index 092e620ac4b6a306721aa82455907ecebb7fcfb5..6dcb3303a4be9b2967dba446fa57c02c186f5ff4 100644 --- a/experiment/meteo_france_data/scm_models_data/visualization/study_visualization/main_study_visualizer.py +++ b/experiment/meteo_france_data/scm_models_data/visualization/study_visualization/main_study_visualizer.py @@ -62,36 +62,39 @@ ALL_ALTITUDES_WITH_20_STATIONS_AT_LEAST = ALL_ALTITUDES[3:-6][:] ALL_STUDIES = SCM_STUDIES + [SafranTemperature, SafranRainfall] -def study_iterator_global(study_classes, only_first_one=False, verbose=True, altitudes=None, nb_days=None) -> \ +def study_iterator_global(study_classes, only_first_one=False, verbose=True, altitudes=None, nb_days=None, orientations=None) -> \ List[AbstractStudy]: for study_class in study_classes: - for study in study_iterator(study_class, only_first_one, verbose, altitudes, nb_days): + for study in study_iterator(study_class, only_first_one, verbose, altitudes, nb_days, orientations=orientations): yield study if only_first_one: break -def study_iterator(study_class, only_first_one=False, verbose=True, altitudes=None, nb_consecutive_days=3) -> List[ +def study_iterator(study_class, only_first_one=False, verbose=True, altitudes=None, nb_consecutive_days=3, + orientations=None) -> List[ AbstractStudy]: # Default argument altis = [1800] if altitudes is None else altitudes + orients = [None] if orientations is None else orientations if verbose: print('\n\n\n\n\nLoading studies....') for alti in altis: - if verbose: - print('alti: {}, nb_day: {} '.format(alti, nb_consecutive_days), end='') + for orient in orients: + if verbose: + print('alti: {}, nb_day: {} orient = {} '.format(alti, nb_consecutive_days, orient), end='') - study = study_class(altitude=alti) + study = study_class(altitude=alti, orientation=orient) - if verbose: - massifs = study.altitude_to_massif_names[alti] - print('{} massifs: {} \n'.format(len(massifs), massifs)) - yield study + if verbose: + massifs = study.altitude_to_massif_names[alti] + print('{} massifs: {} \n'.format(len(massifs), massifs)) + yield study - # Stop iterations on purpose - if only_first_one: - break + # Stop iterations on purpose + if only_first_one: + break def extended_visualization(): diff --git a/experiment/paper1_steps/poster_EVAN2019/main_poster_EVAN2019.py b/experiment/paper1_steps/poster_EVAN2019/main_poster_EVAN2019.py index 9738810a9f390b55272d50d614aba939c476e3ff..4d65f079447a5f52b6fabc1af17856bb85131314 100644 --- a/experiment/paper1_steps/poster_EVAN2019/main_poster_EVAN2019.py +++ b/experiment/paper1_steps/poster_EVAN2019/main_poster_EVAN2019.py @@ -1,4 +1,4 @@ -from experiment.meteo_france_data.scm_models_data.crocus.crocus import CrocusDepth, CrocusSweTotal +from experiment.meteo_france_data.scm_models_data.crocus.crocus import CrocusDepth, CrocusSweTotal, CrocusSwe3Days from experiment.meteo_france_data.scm_models_data.safran.safran import SafranSnowfall from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.altitude_year_hypercube_visualizer import \ Altitude_Hypercube_Year_Visualizer, AltitudeHypercubeVisualizerWithoutTrendType @@ -57,6 +57,22 @@ def main_poster_B_starting_years_analysis(): vizualiser.visualize_massif_trend_test_one_altitude(poster_plot=True, write_text_on_massif=True) +def main_poster_C_orientation_analysis(): + """By default the slope is equal to 20""" + nb = 0 + cardinal_orientations = [0.0, 90.0, 180.0, 270.0] + trend_test_class = GevLocationAndScaleTrendTest + for altitude in POSTER_ALTITUDES[nb:]: + study_class = CrocusSwe3Days + for orientation in cardinal_orientations[nb:]: + vizualiser = get_full_altitude_visualizer(Altitude_Hypercube_Year_Visualizer, altitude=altitude, + exact_starting_year=1958, reduce_strength_array=False, + trend_test_class=trend_test_class, + study_class=study_class, + orientation=orientation) + vizualiser.visualize_massif_trend_test_one_altitude(poster_plot=True, write_text_on_massif=False) + + def main_poster_D_other_quantities_analysis(): nb = 3 trend_test_class = GevLocationAndScaleTrendTest @@ -72,4 +88,5 @@ def main_poster_D_other_quantities_analysis(): if __name__ == '__main__': # main_poster_A_non_stationary_model_choice() # main_poster_B_starting_years_analysis() - main_poster_D_other_quantities_analysis() + main_poster_C_orientation_analysis() + # main_poster_D_other_quantities_analysis() diff --git a/experiment/paper1_steps/utils.py b/experiment/paper1_steps/utils.py index 24f7a9c6d527f33fd5b46d20f78c1c44b4cb7d4d..eb7ff555cec184a1bc6b7a644f68b4feecf4c2ea 100644 --- a/experiment/paper1_steps/utils.py +++ b/experiment/paper1_steps/utils.py @@ -12,7 +12,8 @@ def get_full_altitude_visualizer(altitude_hypercube_class, exact_starting_year=N reduce_strength_array=False, trend_test_class = GevLocationTrendTest, offset_starting_year=10, - study_class=CrocusSwe3Days): + study_class=CrocusSwe3Days, + orientation=None): altitudes, first_starting_year, last_starting_year, nb_data_reduced_for_speed, only_first_one, save_to_file, _ = get_full_parameters( altitude=altitude, offset_starting_year=offset_starting_year) if exact_starting_year is not None: @@ -21,6 +22,7 @@ def get_full_altitude_visualizer(altitude_hypercube_class, exact_starting_year=N visualizer = load_altitude_visualizer(altitude_hypercube_class, altitudes, last_starting_year, nb_data_reduced_for_speed, only_first_one, save_to_file, study_classes, trend_test_class, first_starting_year=first_starting_year, - exact_starting_year=exact_starting_year) + exact_starting_year=exact_starting_year, + orientations=[orientation]) visualizer.reduce_strength_array = reduce_strength_array return visualizer